{
    "contractName": "Security",
    "abi": [
        {
            "constant": true,
            "inputs": [
                {
                    "name": "_owner",
                    "type": "address"
                }
            ],
            "name": "withdrawnFundsOf",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "totalSupply",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "time",
                    "type": "uint256"
                }
            ],
            "name": "getDistribution",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                },
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "_owner",
                    "type": "address"
                }
            ],
            "name": "withdrawableFundsOf",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "_owner",
                    "type": "address"
                }
            ],
            "name": "accumulativeFundsOf",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "time",
                    "type": "uint256"
                }
            ],
            "name": "snapshotTotalSupply",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "time",
                    "type": "uint256"
                },
                {
                    "name": "owner",
                    "type": "address"
                }
            ],
            "name": "snapshotBalanceOf",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "fundsToken",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "balanceOf",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [],
            "name": "renounceOwnership",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "owner",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "isOwner",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "fundsTokenBalance",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "isPaused",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "time",
                    "type": "uint256"
                },
                {
                    "name": "ballot",
                    "type": "bool"
                }
            ],
            "name": "vote",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "time",
                    "type": "uint256"
                }
            ],
            "name": "getResolution",
            "outputs": [
                {
                    "name": "",
                    "type": "string"
                },
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "owner",
                    "type": "address"
                },
                {
                    "name": "spender",
                    "type": "address"
                }
            ],
            "name": "allowance",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "transferOwnership",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getNextSnapshots",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256[]"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "enforcer",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "name": "owner",
                    "type": "address"
                }
            ],
            "name": "Freeze",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "enforcer",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "name": "owner",
                    "type": "address"
                }
            ],
            "name": "Unfreeze",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "owner",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "Burn",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "beneficiary",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "Mint",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "security",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "recordDate",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "name": "resolution",
                    "type": "string"
                },
                {
                    "indexed": false,
                    "name": "voting",
                    "type": "bool"
                }
            ],
            "name": "Resolution",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "security",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "oldTime",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "name": "newTime",
                    "type": "uint256"
                }
            ],
            "name": "SnapshotSchedule",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "security",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "time",
                    "type": "uint256"
                }
            ],
            "name": "SnapshotUnschedule",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "from",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "name": "to",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "value",
                    "type": "uint256"
                }
            ],
            "name": "Transfer",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "owner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "name": "spender",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "value",
                    "type": "uint256"
                }
            ],
            "name": "Approval",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [],
            "name": "Paused",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [],
            "name": "Unpaused",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "previousOwner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "OwnershipTransferred",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "by",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "fundsDistributed",
                    "type": "uint256"
                }
            ],
            "name": "FundsDistributed",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "by",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "fundsWithdrawn",
                    "type": "uint256"
                }
            ],
            "name": "FundsWithdrawn",
            "type": "event"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "name_",
                    "type": "bytes32"
                },
                {
                    "name": "symbol_",
                    "type": "bytes32"
                },
                {
                    "name": "_owner",
                    "type": "address"
                },
                {
                    "name": "issuer",
                    "type": "address"
                },
                {
                    "name": "client",
                    "type": "address"
                },
                {
                    "name": "currency",
                    "type": "address"
                }
            ],
            "name": "initialize",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "sender",
                    "type": "address"
                }
            ],
            "name": "initialize",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "name",
            "outputs": [
                {
                    "name": "",
                    "type": "string"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "symbol",
            "outputs": [
                {
                    "name": "",
                    "type": "string"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "decimals",
            "outputs": [
                {
                    "name": "",
                    "type": "uint8"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "issuer",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "mintToken",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "transferor",
                    "type": "address"
                },
                {
                    "name": "transferee",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "transferToken",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "spender",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "whiteList",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "recipient",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "transfer",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "spender",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "approve",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "sender",
                    "type": "address"
                },
                {
                    "name": "recipient",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "transferFrom",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "spender",
                    "type": "address"
                },
                {
                    "name": "addedValue",
                    "type": "uint256"
                }
            ],
            "name": "increaseAllowance",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "spender",
                    "type": "address"
                },
                {
                    "name": "subtractedValue",
                    "type": "uint256"
                }
            ],
            "name": "decreaseAllowance",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "holder",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "freeze",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "holder",
                    "type": "address"
                }
            ],
            "name": "unfreeze",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "frozen",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "holder",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "burn",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [],
            "name": "burnAll",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "time",
                    "type": "uint256"
                }
            ],
            "name": "scheduleSnapshot",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "oldTime",
                    "type": "uint256"
                },
                {
                    "name": "newTime",
                    "type": "uint256"
                }
            ],
            "name": "rescheduleSnapshot",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "time",
                    "type": "uint256"
                }
            ],
            "name": "unscheduleSnapshot",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "time",
                    "type": "uint256"
                },
                {
                    "name": "votes",
                    "type": "bool"
                },
                {
                    "name": "ipfsLink",
                    "type": "string"
                }
            ],
            "name": "createResolution",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "time",
                    "type": "uint256"
                }
            ],
            "name": "countVotes",
            "outputs": [
                {
                    "name": "total",
                    "type": "uint256"
                },
                {
                    "name": "yes",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "time",
                    "type": "uint256"
                },
                {
                    "name": "wallet",
                    "type": "address"
                },
                {
                    "name": "token",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "payoutProrata",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "time",
                    "type": "uint256"
                },
                {
                    "name": "holder",
                    "type": "address"
                },
                {
                    "name": "wallet",
                    "type": "address"
                },
                {
                    "name": "token",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "payout",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [],
            "name": "withdrawFunds",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "owners",
                    "type": "address[]"
                }
            ],
            "name": "pushFunds",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [],
            "name": "updateFundsReceived",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [],
            "name": "pause",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [],
            "name": "unpause",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "metadata": "{\"compiler\":{\"version\":\"0.5.7+commit.6da8b019\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"withdrawnFundsOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"countVotes\",\"outputs\":[{\"name\":\"total\",\"type\":\"uint256\"},{\"name\":\"yes\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"withdrawFunds\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"holder\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"freeze\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"getDistribution\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"withdrawableFundsOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"unfreeze\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"owners\",\"type\":\"address[]\"}],\"name\":\"pushFunds\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"updateFundsReceived\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"accumulativeFundsOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"snapshotTotalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"time\",\"type\":\"uint256\"},{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"snapshotBalanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"fundsToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"whiteList\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"issuer\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mintToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"name_\",\"type\":\"bytes32\"},{\"name\":\"symbol_\",\"type\":\"bytes32\"},{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"issuer\",\"type\":\"address\"},{\"name\":\"client\",\"type\":\"address\"},{\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"burnAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"holder\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"time\",\"type\":\"uint256\"},{\"name\":\"wallet\",\"type\":\"address\"},{\"name\":\"token\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"payoutProrata\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"scheduleSnapshot\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"fundsTokenBalance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isPaused\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"time\",\"type\":\"uint256\"},{\"name\":\"holder\",\"type\":\"address\"},{\"name\":\"wallet\",\"type\":\"address\"},{\"name\":\"token\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"payout\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"time\",\"type\":\"uint256\"},{\"name\":\"votes\",\"type\":\"bool\"},{\"name\":\"ipfsLink\",\"type\":\"string\"}],\"name\":\"createResolution\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"time\",\"type\":\"uint256\"},{\"name\":\"ballot\",\"type\":\"bool\"}],\"name\":\"vote\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"frozen\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"oldTime\",\"type\":\"uint256\"},{\"name\":\"newTime\",\"type\":\"uint256\"}],\"name\":\"rescheduleSnapshot\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"getResolution\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"unscheduleSnapshot\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"transferor\",\"type\":\"address\"},{\"name\":\"transferee\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getNextSnapshots\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"enforcer\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"Freeze\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"enforcer\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"Unfreeze\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"security\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"recordDate\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"resolution\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"voting\",\"type\":\"bool\"}],\"name\":\"Resolution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"security\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"oldTime\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"newTime\",\"type\":\"uint256\"}],\"name\":\"SnapshotSchedule\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"security\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"SnapshotUnschedule\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"by\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"fundsDistributed\",\"type\":\"uint256\"}],\"name\":\"FundsDistributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"by\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"fundsWithdrawn\",\"type\":\"uint256\"}],\"name\":\"FundsWithdrawn\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"accumulativeFundsOf(address)\":{\"details\":\"accumulativeFundsOf(_owner) = withdrawableFundsOf(_owner) + withdrawnFundsOf(_owner)\\r = (pointsPerShare * balanceOf(_owner) + pointsCorrection[_owner]) / pointsMultiplier\\r\",\"params\":{\"_owner\":\"The address of a token holder.\\r\"},\"return\":\"The amount of funds that `_owner` has earned in total.\\r\"},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"initialize(address)\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"initialize(bytes32,bytes32,address,address,address,address)\":{\"details\":\"Sets the values for {name} and {symbol}.\\r      * The default value of {decimals} is 18. To select a different value for\\r {decimals} you should overload it.\\r      * All two of these values are immutable: they can only be set once during\\r construction.\\r\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"isPaused()\":{\"return\":\"True: contract is paused\\rFalse: contract is not paused\\r\"},\"name()\":{\"details\":\"Returns the name of the token.\\r\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner.     * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the\\r name.\\r\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"withdrawableFundsOf(address)\":{\"params\":{\"_owner\":\"The address of a token holder.\\r\"},\"return\":\"The amount funds that `_owner` can withdraw.\\r\"},\"withdrawnFundsOf(address)\":{\"params\":{\"_owner\":\"The address of a token holder.\\r\"},\"return\":\"The amount of funds that `_owner` has withdrawn.\\r\"}}},\"userdoc\":{\"methods\":{\"accumulativeFundsOf(address)\":{\"notice\":\"prev. accumulativeDividendOf\\rView the amount of funds that an address has earned in total.\\r\"},\"decimals()\":{\"notice\":\"Securities are indivisible, so returning decimal 0\\r\"},\"isPaused()\":{\"notice\":\"returns whether or not the contract is paused\\r\"},\"pushFunds(address[])\":{\"notice\":\"Withdraws funds for a set of token holders\\r\"},\"updateFundsReceived()\":{\"notice\":\"Register a payment of funds in tokens. May be called directly after a deposit is made.\\r\"},\"withdrawFunds()\":{\"notice\":\"Withdraws all available funds for a token holder\\r\"},\"withdrawableFundsOf(address)\":{\"notice\":\"prev. withdrawableDividendOf\\rView the amount of funds that an address can withdraw.\\r\"},\"withdrawnFundsOf(address)\":{\"notice\":\"prev. withdrawnDividendOf\\rView the amount of funds that an address has withdrawn.\\r\"}}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/Security.sol\":\"Security\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-ethereum-package/contracts/GSN/Context.sol\":{\"keccak256\":\"0x3491510fa4862af1a43f6c860d9cf7392240196540cd3c0eea79d374d419c5a1\",\"urls\":[\"bzzr://5cddbf3b74b775a8670757a6b8e108dac17dac20253f35f4c729e9cb6bea4ed3\"]},\"@openzeppelin/contracts-ethereum-package/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzzr://200d5728b32858918810d8d7a8db1406ee9b157ad5026f050e6d864a696b9080\"]},\"@openzeppelin/contracts-ethereum-package/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]},\"@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xd7e8ab76fa35c4d8d35a06a6ed538cadab8b75a1aa00594ced1568b2c0cadde3\",\"urls\":[\"bzzr://b4c855b32d75f2a4969bfbd530b6934b69f12f28584b3746967e1ca64e024bd9\"]},\"@openzeppelin/contracts-ethereum-package/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x2a474399663812668bb8e9c9e7d011d54fd09de386bd6e9fcb2407a677ebd1aa\",\"urls\":[\"bzzr://3d70561b32ba1494d2b2df362e92dff5ab869d27e2fe35cf9bf3a8ae137cffd3\"]},\"@openzeppelin/contracts-ethereum-package/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzzr://cf2d583b8dce38d0617fdcd65f2fd9f126fe17b7f683b5a515ea9d2762d8b062\"]},\"@openzeppelin/contracts-ethereum-package/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x2745c69d2609b4cb8015e3e515985fdabb8425259252d670e9479757e84d8244\",\"urls\":[\"bzzr://1654fcaa2b59231739b840bc33be738aaf827f67f15527803eba1d86e5a830bd\"]},\"@openzeppelin/upgrades/contracts/Initializable.sol\":{\"keccak256\":\"0x9bfec92e36234ecc99b5d37230acb6cd1f99560233753162204104a4897e8721\",\"urls\":[\"bzzr://f75d88b16fe25a9e19b3512691c496e2bb6d8451bc9a636196c4e17ca9b40201\"]},\"project:/contracts/CorporateActions.sol\":{\"keccak256\":\"0x600dd30f41eb35a0b18fb96d9afe42c1379f0474cda6aa68c03a49ced0b6b216\",\"urls\":[\"bzzr://80aeeaaa519c8f8a9d9a2b236fa2c9aa2a56730838502a4ea633e79e187dc217\"]},\"project:/contracts/FundsDistributionToken.sol\":{\"keccak256\":\"0xc703a2ba1407881c6b0daac191e055aba5b35ce36be8c84d364283ae149d5ff4\",\"urls\":[\"bzzr://8c272cfd3349c1b41567ac64bd7e3699ae8840ee6b67abd2cad10561f572cc03\"]},\"project:/contracts/Security.sol\":{\"keccak256\":\"0x965a1a981146b8ebd74fab17a4734d1dadf06557a51114ef90c2fbd05fee8e22\",\"urls\":[\"bzzr://b6a7885e0298aa937d7250d4cd4526d5502e7871b6e6d5a1017457e4d51db463\"]},\"project:/contracts/Snapshot.sol\":{\"keccak256\":\"0x92ea391e68e089947e37b11002b951a7224937e38df5d8fcb8d1aa6141cafa34\",\"urls\":[\"bzzr://205565c1d01a2c41266c2814c2979223271fad685577c523ac0711f198d1a24b\"]},\"project:/contracts/interfaces/IFactory.sol\":{\"keccak256\":\"0x29cd61f33fc8b6df1df33f8348a3ac1899b4deb666e67488e76d85dbd8d6a75f\",\"urls\":[\"bzzr://0987c5150127114a6c78c19ee94e44d3eceaffb9171a366ea7aacadb9ac1950e\"]},\"project:/contracts/interfaces/IFundsDistributionToken.sol\":{\"keccak256\":\"0x3d5d99cbc132660388ed8e577655612307a51e013b832d2ac4ec86ba99e6202b\",\"urls\":[\"bzzr://f87d371129394c1145044d0ca8efe3bbba000c564305626129bd9f3eee3cea10\"]},\"project:/contracts/interfaces/ISecurity.sol\":{\"keccak256\":\"0x78465ac58789aedcdf71ae7da7e144a63db0ca386e0b4c2392a29f726e5d35d4\",\"urls\":[\"bzzr://7d0224ef9bc4c783f66e3c9a20a46274c9b70b754643372433ebd00ef1bd80c6\"]},\"project:/contracts/interfaces/VerifiedClient.sol\":{\"keccak256\":\"0x4562b0ed92d6752e2e79e14ec71511dbc019925d1bc549777e8ab9f2abefa4d7\",\"urls\":[\"bzzr://7b6bb4c351bab3f4c983ed339fc371c6f6621b7d52fd8a77cfb7a64b47391d0d\"]},\"project:/contracts/math/FixedPoint.sol\":{\"keccak256\":\"0x727dac57e0f66f42425bc44ba7ad617c77f9a3266c54fdd6c424fcd8e45d931d\",\"urls\":[\"bzzr://f805da569c4689e4805c24cdc6d5d6406de87fa73e195d68304a874839decae5\"]},\"project:/contracts/math/LogExpMath.sol\":{\"keccak256\":\"0xe8078460aae016460645c05a09602a8021473127853de5e0910138b885b53471\",\"urls\":[\"bzzr://edec9b90a5f598c7fa82fca8c96de4619e95eb3229b8ca3ecc28cc3bed8f204a\"]},\"project:/contracts/math/SafeConversion.sol\":{\"keccak256\":\"0x6997f2aa2e79eb526b8fa9cf5f6edf238a22ae532d23cd098cdd404e28ea4833\",\"urls\":[\"bzzr://441c98d0bf502e0261fb4df8a5fe6f9cbf6a7657a830d3b0dfecc212b23dd32a\"]},\"project:/contracts/math/SignedSafeMath.sol\":{\"keccak256\":\"0x87968fe9e4ead7ac74b16df7a03fe8073580bb22f8b6ef6598420e13e1257ab3\",\"urls\":[\"bzzr://d4d30c2b54a1ea9dd1b44cfe1c626c0c76e8a7071aa6833d811b42e7b11f5217\"]},\"project:/contracts/utilities/Pausable.sol\":{\"keccak256\":\"0x7009d0f78b0c8b2527f5d468c6e7fb3e6f6a5da1e93d9822d8a80c448d8c6988\",\"urls\":[\"bzzr://64d06444c78e8e675875367fcc55a297984fecd6a87d5de08db6e4a2a2db3f9d\"]}},\"version\":1}",
    "bytecode": "0x6080604052615678806100136000396000f3fe608060405234801561001057600080fd5b50600436106102ba5760003560e01c80638456cb5911610182578063b187bd26116100e9578063d21268ef116100a2578063e20c35e51161007c578063e20c35e514610a84578063f2fde38b14610aa1578063f5537ede14610ac7578063fb78ed4014610afd576102ba565b8063d21268ef14610993578063d565a533146109b6578063dd62ed3e14610a56576102ba565b8063b187bd2614610824578063b6fdff181461082c578063bcc88fbd1461086e578063c4d66de814610922578063c9d27afe14610948578063d05166501461096d576102ba565b80639dc29fac1161013b5780639dc29fac1461073f578063a1b4b1ce1461076b578063a312e155146107a7578063a457c2d7146107c4578063a9059cbb146107f0578063a9691f3f1461081c576102ba565b80638456cb59146106cd57806389d29c4c146106d55780638da5cb5b1461071f5780638f32d59b1461072757806395d89b411461072f5780639975038c14610737576102ba565b8063443bb29311610226578063634daf76116101df578063634daf76146105f757806363f04b151461062357806370a0823114610647578063715018a61461066d57806372e0f8531461067557806379c65068146106a1576102ba565b8063443bb293146104f057806345c8b1a61461051657806345f634f21461053c57806346c162de146105ac5780634e97415f146105b45780635ee7a942146105da576102ba565b806324600fc31161027857806324600fc31461042857806324bce60c14610432578063313ce5671461045e578063395093511461047c5780633b345a87146104a85780633f4ba83a146104e8576102ba565b806241c52c146102bf57806306fdde03146102f7578063095ea7b31461037457806318160ddd146103b45780631840f0ca146103bc57806323b872dd146103f2575b600080fd5b6102e5600480360360208110156102d557600080fd5b50356001600160a01b0316610b55565b60408051918252519081900360200190f35b6102ff610b74565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610339578181015183820152602001610321565b50505050905090810190601f1680156103665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a06004803603604081101561038a57600080fd5b506001600160a01b038135169060200135610c0b565b604080519115158252519081900360200190f35b6102e5610d8f565b6103d9600480360360208110156103d257600080fd5b5035610d95565b6040805192835260208301919091528051918290030190f35b6103a06004803603606081101561040857600080fd5b506001600160a01b03813581169160208101359091169060400135610fce565b6104306112b9565b005b6104306004803603604081101561044857600080fd5b506001600160a01b0381351690602001356112c4565b610466611451565b6040805160ff9092168252519081900360200190f35b6103a06004803603604081101561049257600080fd5b506001600160a01b038135169060200135611456565b6104c5600480360360208110156104be57600080fd5b50356114d9565b604080516001600160a01b03909316835260208301919091528051918290030190f35b6104306115c5565b6102e56004803603602081101561050657600080fd5b50356001600160a01b03166116b7565b6104306004803603602081101561052c57600080fd5b50356001600160a01b03166116dd565b6104306004803603602081101561055257600080fd5b81019060208101813564010000000081111561056d57600080fd5b82018360208201111561057f57600080fd5b803590602001918460208302840111640100000000831117156105a157600080fd5b509092509050611867565b6104306118a3565b6102e5600480360360208110156105ca57600080fd5b50356001600160a01b03166118c9565b6102e5600480360360208110156105f057600080fd5b503561191e565b6102e56004803603604081101561060d57600080fd5b50803590602001356001600160a01b031661194e565b61062b611997565b604080516001600160a01b039092168252519081900360200190f35b6102e56004803603602081101561065d57600080fd5b50356001600160a01b03166119a6565b6104306119c1565b6104306004803603604081101561068b57600080fd5b506001600160a01b038135169060200135611a55565b610430600480360360408110156106b757600080fd5b506001600160a01b038135169060200135611be0565b610430611cc4565b610430600480360360c08110156106eb57600080fd5b508035906020810135906001600160a01b0360408201358116916060810135821691608082013581169160a0013516611db3565b61062b611efc565b6103a0611f0b565b6102ff611f31565b610430611f92565b6104306004803603604081101561075557600080fd5b506001600160a01b03813516906020013561217a565b6104306004803603608081101561078157600080fd5b508035906001600160a01b03602082013581169160408101359091169060600135612304565b610430600480360360208110156107bd57600080fd5b503561284c565b6103a0600480360360408110156107da57600080fd5b506001600160a01b038135169060200135612989565b6103a06004803603604081101561080657600080fd5b506001600160a01b038135169060200135612a0f565b6102e5612cab565b6103a0612cb1565b610430600480360360a081101561084257600080fd5b508035906001600160a01b03602082013581169160408101358216916060820135169060800135612cba565b6104306004803603606081101561088457600080fd5b81359160208101351515918101906060810160408201356401000000008111156108ad57600080fd5b8201836020820111156108bf57600080fd5b803590602001918460018302840111640100000000831117156108e157600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061317b945050505050565b6104306004803603602081101561093857600080fd5b50356001600160a01b03166132bc565b6103a06004803603604081101561095e57600080fd5b508035906020013515156133b0565b6102e56004803603602081101561098357600080fd5b50356001600160a01b03166135e9565b610430600480360360408110156109a957600080fd5b5080359060200135613651565b6109d3600480360360208110156109cc57600080fd5b503561378b565b604051808060200183151515158152602001828103825284818151815260200191508051906020019080838360005b83811015610a1a578181015183820152602001610a02565b50505050905090810190601f168015610a475780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b6102e560048036036040811015610a6c57600080fd5b506001600160a01b038135811691602001351661394e565b61043060048036036020811015610a9a57600080fd5b5035613979565b61043060048036036020811015610ab757600080fd5b50356001600160a01b0316613ab2565b61043060048036036060811015610add57600080fd5b506001600160a01b03813581169160208101359091169060400135613b05565b610b05613bce565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610b41578181015183820152602001610b29565b505050509050019250505060405180910390f35b6001600160a01b0381166000908152609e60205260409020545b919050565b60a98054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610c005780601f10610bd557610100808354040283529160200191610c00565b820191906000526020600020905b815481529060010190602001808311610be357829003601f168201915b505050505090505b90565b6001600160a01b038216600090815260b060205260408120548390839081111580610ccf5750816001600160a01b0316610c43611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610c9857600080fd5b505afa158015610cac573d6000803e3d6000fd5b505050506040513d6020811015610cc257600080fd5b50516001600160a01b0316145b80610ce7575060ac546001600160a01b038381169116145b610d295760408051600160e51b62461bcd02815260206004820152601d60248201526000805160206155a0833981519152604482015290519081900360640190fd5b60665460ff1615610d725760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b610d84610d7d613c25565b8686613c29565b506001949350505050565b60695490565b606654600090819060ff1615610de35760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b60408051600080825260208083018085528351902087835260a790915283822080549294859492939192019081908390600260001961010060018416150201909116048015610e695780601f10610e47576101008083540402835291820191610e69565b820191906000526020600020905b815481529060010190602001808311610e55575b50509150506040516020818303038152906040528051906020012014610fc45760a860a760008781526020019081526020016000206040518082805460018160011615610100020316600290048015610ef95780601f10610ed7576101008083540402835291820191610ef9565b820191906000526020600020905b815481529060010190602001808311610ee5575b505092835250506040519081900360200190205460ff16151560011415610fc45760ad5460005b81811015610fc1576000610f558860ad8481548110610f3b57fe5b6000918252602090912001546001600160a01b031661194e565b1115610fb957600087815260a46020526040812060ad805460019096019591929184908110610f8057fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff16151560011415610fb9578360010193505b600101610f20565b50505b925090505b915091565b6000610fd8613c25565b6001600160a01b038116600090815260b0602052604090205483908111158061109a5750816001600160a01b031661100e611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561106357600080fd5b505afa158015611077573d6000803e3d6000fd5b505050506040513d602081101561108d57600080fd5b50516001600160a01b0316145b806110b2575060ac546001600160a01b038381169116145b6110f45760408051600160e51b62461bcd02815260206004820152601d60248201526000805160206155a0833981519152604482015290519081900360640190fd5b60665460ff161561113d5760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b6001600160a01b038616600090815260af602052604090205461116f85611163896119a6565b9063ffffffff613d1b16565b10156111c55760408051600160e51b62461bcd02815260206004820152601560248201527f46756e6473207472616e736665722066726f7a656e0000000000000000000000604482015290519081900360640190fd5b6111d0868686613d64565b6111db868686613dbf565b6111e3613c25565b6001600160a01b0316866001600160a01b0316146112475761124786611207613c25565b611242876040518060600160405280602881526020016154e4602891396112358c611230613c25565b61394e565b919063ffffffff613e6c16565b613c29565b6001600160a01b038516600090815260ae60205260409020546112ad5760ad805460018101825560008051602061547f8339815191520180546001600160a01b0319166001600160a01b0388169081179091559054600091825260ae6020526040909120555b50600195945050505050565b6112c233613f06565b565b6112cc613c25565b806001600160a01b03166112de611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561133357600080fd5b505afa158015611347573d6000803e3d6000fd5b505050506040513d602081101561135d57600080fd5b50516001600160a01b0316146113ab5760408051600160e51b62461bcd02815260206004820152601c60248201526000805160206155e4833981519152604482015290519081900360640190fd5b60665460ff16156113f45760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b6001600160a01b038316600081815260af60205260409020839055611417613c25565b6001600160a01b03167f51d18786e9cb144f87d46e7b796309ea84c7c687d91e09c97f051eacf59bc52860405160405180910390a3505050565b601290565b60665460009060ff16156114a25760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b6114cf6114ad613c25565b84611242856114c36114bd613c25565b8961394e565b9063ffffffff613fde16565b5060015b92915050565b60008060006114e8843361194e565b1115610fc95760408051600080825260208083018085528351902087835260a7909152908390208054919390920190819083906002600019610100600184161502019091160480156115715780601f1061154f576101008083540402835291820191611571565b820191906000526020600020905b81548152906001019060200180831161155d575b50509150506040516020818303038152906040528051906020012014610fc9575050600081815260a660209081526040808320338452909152902080546001909101546001600160a01b0390911690610fc9565b6115cd613c25565b806001600160a01b03166115df611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561163457600080fd5b505afa158015611648573d6000803e3d6000fd5b505050506040513d602081101561165e57600080fd5b50516001600160a01b0316146116ac5760408051600160e51b62461bcd02815260206004820152601c60248201526000805160206155e4833981519152604482015290519081900360640190fd5b6116b461403b565b50565b6001600160a01b0381166000908152609e60205260408120546114d390611163846118c9565b6116e5613c25565b806001600160a01b03166116f7611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561174c57600080fd5b505afa158015611760573d6000803e3d6000fd5b505050506040513d602081101561177657600080fd5b50516001600160a01b0316146117c45760408051600160e51b62461bcd02815260206004820152601c60248201526000805160206155e4833981519152604482015290519081900360640190fd5b60665460ff161561180d5760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b6001600160a01b038216600081815260af602052604081205561182e613c25565b6001600160a01b03167f4f3ab9ff0cc4f039268532098e01239544b0420171876e36889d01c62c784c7960405160405180910390a35050565b60005b8181101561189e5761189683838381811061188157fe5b905060200201356001600160a01b0316613f06565b60010161186a565b505050565b60006118ad614070565b905060008113156116b4576116b46118c482614109565b61411c565b6001600160a01b0381166000908152609d6020526040812054600160801b90611910906118f590614109565b6114c3611901866119a6565b609c549063ffffffff6141de16565b8161191757fe5b0492915050565b600080600061192e8460a061423a565b91509150816119445761193f610d8f565b611946565b805b949350505050565b6001600160a01b0381166000908152609f602052604081208190819061197590869061423a565b915091508161198c57611987846119a6565b61198e565b805b95945050505050565b60b1546001600160a01b031681565b6001600160a01b031660009081526067602052604090205490565b6119c9611f0b565b611a0b5760408051600160e51b62461bcd028152602060048201819052602482015260008051602061550c833981519152604482015290519081900360640190fd5b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380546001600160a01b0319169055565b611a5d613c25565b6001600160a01b038116600090815260b06020526040902054829081111580611b1f5750816001600160a01b0316611a93611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611ae857600080fd5b505afa158015611afc573d6000803e3d6000fd5b505050506040513d6020811015611b1257600080fd5b50516001600160a01b0316145b80611b37575060ac546001600160a01b038381169116145b611b795760408051600160e51b62461bcd02815260206004820152601d60248201526000805160206155a0833981519152604482015290519081900360640190fd5b60665460ff1615611bc25760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b50506001600160a01b03909116600090815260b06020526040902055565b611be8611f0b565b611c2a5760408051600160e51b62461bcd028152602060048201819052602482015260008051602061550c833981519152604482015290519081900360640190fd5b611c3660008383613d64565b611c408282614290565b60ad805460018101825560008051602061547f8339815191520180546001600160a01b0319166001600160a01b0385169081179091559054600082815260ae602090815260409182902092909255805184815290517f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885929181900390910190a25050565b611ccc613c25565b806001600160a01b0316611cde611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611d3357600080fd5b505afa158015611d47573d6000803e3d6000fd5b505050506040513d6020811015611d5d57600080fd5b50516001600160a01b031614611dab5760408051600160e51b62461bcd02815260206004820152601c60248201526000805160206155e4833981519152604482015290519081900360640190fd5b6116b46142fa565b600054610100900460ff1680611dcc5750611dcc614332565b80611dda575060005460ff16155b611e1857604051600160e51b62461bcd02815260040180806020018281038252602e81526020018061552c602e913960400191505060405180910390fd5b600054610100900460ff16158015611e43576000805460ff1961ff0019909116610100171660011790555b611e4c856132bc565b6040805160208082018a90528251808303820181529183019092528051611e779260a99201906152da565b506040805160208082018990528251808303820181529183019092528051611ea39260aa9201906152da565b5060ac80546001600160a01b038087166001600160a01b03199283161790925560ab805486841690831617905560b18054928516929091169190911790558015611ef3576000805461ff00191690555b50505050505050565b6033546001600160a01b031690565b6033546000906001600160a01b0316611f22613c25565b6001600160a01b031614905090565b60aa8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610c005780601f10610bd557610100808354040283529160200191610c00565b611f9a613c25565b806001600160a01b0316611fac611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561200157600080fd5b505afa158015612015573d6000803e3d6000fd5b505050506040513d602081101561202b57600080fd5b50516001600160a01b0316146120795760408051600160e51b62461bcd02815260206004820152601c60248201526000805160206155e4833981519152604482015290519081900360640190fd5b60665460ff16156120c25760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b60ad5460005b8181101561189e5761212f60ad82815481106120e057fe5b9060005260206000200160009054906101000a90046001600160a01b0316600061212a60ad858154811061211057fe5b6000918252602090912001546001600160a01b03166119a6565b613d64565b61217260ad828154811061213f57fe5b9060005260206000200160009054906101000a90046001600160a01b031661216d60ad848154811061211057fe5b614338565b6001016120c8565b612182613c25565b806001600160a01b0316612194611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156121e957600080fd5b505afa1580156121fd573d6000803e3d6000fd5b505050506040513d602081101561221357600080fd5b50516001600160a01b0316146122615760408051600160e51b62461bcd02815260206004820152601c60248201526000805160206155e4833981519152604482015290519081900360640190fd5b60665460ff16156122aa5760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b6122b683600084613d64565b6122c08383614338565b6040805183815290516001600160a01b038516917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2505050565b61230c613c25565b60ab5460408051600160e01b63442767330281526001600160a01b03848116600483015291516000939290921691634427673391602480820192606092909190829003018186803b15801561236057600080fd5b505afa158015612374573d6000803e3d6000fd5b505050506040513d606081101561238a57600080fd5b505190506001600160a01b0382166123a0611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156123f557600080fd5b505afa158015612409573d6000803e3d6000fd5b505050506040513d602081101561241f57600080fd5b50516001600160a01b03161480612444575080600160b91b6821bab9ba37b234b0b702145b6124985760408051600160e51b62461bcd02815260206004820152601760248201527f4e6f7420697373756572206f7220637573746f6469616e000000000000000000604482015290519081900360640190fd5b60665460ff16156124e15760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b60006124ec8761191e565b116125415760408051600160e51b62461bcd02815260206004820152601b60248201527f4e6f207363686564756c656420736e617073686f7420666f756e640000000000604482015290519081900360640190fd5b82846001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561259857600080fd5b505afa1580156125ac573d6000803e3d6000fd5b505050506040513d60208110156125c257600080fd5b5051101561261a5760408051600160e51b62461bcd02815260206004820152601460248201527f496e73756666696369656e742062616c616e6365000000000000000000000000604482015290519081900360640190fd5b6001600160a01b0384161580159061263a57506001600160a01b03851615155b80156126465750600083115b61269a5760408051600160e51b62461bcd02815260206004820152601460248201527f496e76616c696420646973747269627574696f6e000000000000000000000000604482015290519081900360640190fd5b60006126a58761191e565b60ad5490915060005b818110156128415760006126c98a60ad8481548110610f3b57fe5b905080156128385760006126e66126e08387614382565b89614464565b9050886001600160a01b03166323b872dd8b60ad868154811061270557fe5b60009182526020808320909101546040805163ffffffff871660e01b81526001600160a01b0395861660048201529490911660248501526044840187905251606480850194929391928390030190829087803b15801561276457600080fd5b505af1158015612778573d6000803e3d6000fd5b505050506040513d602081101561278e57600080fd5b505060008b815260a66020526040812060ad80548c939190879081106127b057fe5b6000918252602080832091909101546001600160a01b039081168452838201949094526040928301822080546001600160a01b03191695909416949094179092558d825260a690925290812060ad8054849391908790811061280e57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060010155505b506001016126ae565b505050505050505050565b612854613c25565b806001600160a01b0316612866611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156128bb57600080fd5b505afa1580156128cf573d6000803e3d6000fd5b505050506040513d60208110156128e557600080fd5b50516001600160a01b0316146129335760408051600160e51b62461bcd02815260206004820152601c60248201526000805160206155e4833981519152604482015290519081900360640190fd5b60665460ff161561297c5760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b612985826144e4565b5050565b60665460009060ff16156129d55760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b6114cf6129e0613c25565b846112428560405180606001604052806025815260200161562860259139611235612a09613c25565b8a61394e565b6000612a19613c25565b6001600160a01b038116600090815260b06020526040902054839081111580612adb5750816001600160a01b0316612a4f611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015612aa457600080fd5b505afa158015612ab8573d6000803e3d6000fd5b505050506040513d6020811015612ace57600080fd5b50516001600160a01b0316145b80612af3575060ac546001600160a01b038381169116145b612b355760408051600160e51b62461bcd02815260206004820152601d60248201526000805160206155a0833981519152604482015290519081900360640190fd5b60665460ff1615612b7e5760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b60af6000612b8a613c25565b6001600160a01b03166001600160a01b0316815260200190815260200160002054612bbf85611163612bba613c25565b6119a6565b1015612c155760408051600160e51b62461bcd02815260206004820152601560248201527f46756e6473207472616e736665722066726f7a656e0000000000000000000000604482015290519081900360640190fd5b612c27612c20613c25565b8686613d64565b612c39612c32613c25565b8686613dbf565b6001600160a01b038516600090815260ae6020526040902054610d845760ad805460018101825560008051602061547f8339815191520180546001600160a01b0388166001600160a01b031990911681179091559054600091825260ae60205260409091205560019250505092915050565b60b25481565b60665460ff1690565b612cc2613c25565b60ab5460408051600160e01b63442767330281526001600160a01b03848116600483015291516000939290921691634427673391602480820192606092909190829003018186803b158015612d1657600080fd5b505afa158015612d2a573d6000803e3d6000fd5b505050506040513d6060811015612d4057600080fd5b505190506001600160a01b038216612d56611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015612dab57600080fd5b505afa158015612dbf573d6000803e3d6000fd5b505050506040513d6020811015612dd557600080fd5b50516001600160a01b03161480612dfa575080600160b91b6821bab9ba37b234b0b702145b612e4e5760408051600160e51b62461bcd02815260206004820152601760248201527f4e6f7420697373756572206f7220637573746f6469616e000000000000000000604482015290519081900360640190fd5b60665460ff1615612e975760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b6000612ea28861191e565b11612ef75760408051600160e51b62461bcd02815260206004820152601b60248201527f4e6f207363686564756c656420736e617073686f7420666f756e640000000000604482015290519081900360640190fd5b82846001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015612f4e57600080fd5b505afa158015612f62573d6000803e3d6000fd5b505050506040513d6020811015612f7857600080fd5b50511015612fd05760408051600160e51b62461bcd02815260206004820152601460248201527f496e73756666696369656e742062616c616e6365000000000000000000000000604482015290519081900360640190fd5b6000612fdc888861194e565b116130315760408051600160e51b62461bcd02815260206004820152601b60248201527f4e6f74206120736563757269747920746f6b656e20686f6c6465720000000000604482015290519081900360640190fd5b6001600160a01b0384161580159061305157506001600160a01b03851615155b801561305d5750600083115b6130b15760408051600160e51b62461bcd02815260206004820152601460248201527f496e76616c696420646973747269627574696f6e000000000000000000000000604482015290519081900360640190fd5b60408051600160e01b6323b872dd0281526001600160a01b0387811660048301528881166024830152604482018690529151918616916323b872dd916064808201926020929091908290030181600087803b15801561310f57600080fd5b505af1158015613123573d6000803e3d6000fd5b505050506040513d602081101561313957600080fd5b50505060009586525060a6602090815260408087206001600160a01b03968716885290915290942080546001600160a01b031916919093161782555060010155565b613183613c25565b806001600160a01b0316613195611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156131ea57600080fd5b505afa1580156131fe573d6000803e3d6000fd5b505050506040513d602081101561321457600080fd5b50516001600160a01b0316146132625760408051600160e51b62461bcd02815260206004820152601c60248201526000805160206155e4833981519152604482015290519081900360640190fd5b60665460ff16156132ab5760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b6132b6848484614612565b50505050565b600054610100900460ff16806132d557506132d5614332565b806132e3575060005460ff16155b61332157604051600160e51b62461bcd02815260040180806020018281038252602e81526020018061552c602e913960400191505060405180910390fd5b600054610100900460ff1615801561334c576000805460ff1961ff0019909116610100171660011790555b603380546001600160a01b0319166001600160a01b0384811691909117918290556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38015612985576000805461ff00191690555050565b6000806133bd843361194e565b116134125760408051600160e51b62461bcd02815260206004820152601260248201527f556e617574686f72697a656420766f7465720000000000000000000000000000604482015290519081900360640190fd5b600083815260a56020908152604080832033845290915290205460ff166135dc5760408051600080825260208083018085528351902087835260a7909152908390208054919390920190819083906002600019610100600184161502019091160480156134b65780601f106134945761010080835404028352918201916134b6565b820191906000526020600020905b8154815290600101906020018083116134a2575b505091505060405160208183030381529060405280519060200120146135e45760a860a7600085815260200190815260200160002060405180828054600181600116156101000203166002900480156135465780601f10613524576101008083540402835291820191613546565b820191906000526020600020905b815481529060010190602001808311613532575b505092835250506040519081900360200190205460ff161515600114156135dc57600083815260a46020908152604080832033845290915290205460ff166135d75750600082815260a46020908152604080832033808552908352818420805486151560ff199182161790915586855260a584528285209185529252909120805490911660019081179091556114d3565b6135e4565b5060006114d3565b6114d3565b60665460009060ff16156136355760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b506001600160a01b0316600090815260af602052604090205490565b613659613c25565b806001600160a01b031661366b611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156136c057600080fd5b505afa1580156136d4573d6000803e3d6000fd5b505050506040513d60208110156136ea57600080fd5b50516001600160a01b0316146137385760408051600160e51b62461bcd02815260206004820152601c60248201526000805160206155e4833981519152604482015290519081900360640190fd5b60665460ff16156137815760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b61189e8383614793565b60408051600080825260208083018085528351902085835260a7909152838220805460609593949293919290910190819083906002600019610100600184161502019091160480156138145780601f106137f2576101008083540402835291820191613814565b820191906000526020600020905b815481529060010190602001808311613800575b50509150506040516020818303038152906040528051906020012014610fc957600083815260a76020526040908190209051815460a8918391819083906002600019610100600184161502019091160480156138a75780601f106138855761010080835404028352918201916138a7565b820191906000526020600020905b815481529060010190602001808311613893575b50509283525050604080516020928190038301812054845460026101006001831615026000190190911604601f810185900485028301850190935282825260ff16929091849183018282801561393e5780601f106139135761010080835404028352916020019161393e565b820191906000526020600020905b81548152906001019060200180831161392157829003601f168201915b5050505050915091509150610fc9565b6001600160a01b03918216600090815260686020908152604080832093909416825291909152205490565b613981613c25565b806001600160a01b0316613993611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156139e857600080fd5b505afa1580156139fc573d6000803e3d6000fd5b505050506040513d6020811015613a1257600080fd5b50516001600160a01b031614613a605760408051600160e51b62461bcd02815260206004820152601c60248201526000805160206155e4833981519152604482015290519081900360640190fd5b60665460ff1615613aa95760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b61298582614961565b613aba611f0b565b613afc5760408051600160e51b62461bcd028152602060048201819052602482015260008051602061550c833981519152604482015290519081900360640190fd5b6116b481614a59565b613b0d611f0b565b613b4f5760408051600160e51b62461bcd028152602060048201819052602482015260008051602061550c833981519152604482015290519081900360640190fd5b613b5a838383613d64565b613b65838383613dbf565b6001600160a01b038216600090815260ae602052604090205461189e575060ad805460018101825560008051602061547f8339815191520180546001600160a01b0319166001600160a01b0393909316928317905554600091825260ae60205260409091205550565b606060a3805480602002602001604051908101604052809291908181526020018280548015610c0057602002820191906000526020600020905b815481526020019060010190808311613c08575050505050905090565b3390565b6001600160a01b038316613c7157604051600160e51b62461bcd0281526004018080602001828103825260248152602001806155c06024913960400191505060405180910390fd5b6001600160a01b038216613cb957604051600160e51b62461bcd0281526004018080602001828103825260228152602001806153d46022913960400191505060405180910390fd5b6001600160a01b03808416600081815260686020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000613d5d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613e6c565b9392505050565b613d6c614afd565b6001600160a01b03831615613dae57613d8483614b1c565b6001600160a01b03821615613da157613d9c82614b1c565b613da9565b613da9614b46565b61189e565b613db782614b1c565b61189e614b46565b613dca838383614b53565b6000613de9613de483609c546141de90919063ffffffff16565b614cb7565b6001600160a01b0385166000908152609d6020526040902054909150613e15908263ffffffff614cc716565b6001600160a01b038086166000908152609d60205260408082209390935590851681522054613e4a908263ffffffff614d2f16565b6001600160a01b039093166000908152609d6020526040902092909255505050565b60008184841115613efe57604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ec3578181015183820152602001613eab565b50505050905090810190601f168015613ef05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000613f1182614d97565b60b15460408051600160e01b63a9059cbb0281526001600160a01b03868116600483015260248201859052915193945091169163a9059cbb916044808201926020929091908290030181600087803b158015613f6c57600080fd5b505af1158015613f80573d6000803e3d6000fd5b505050506040513d6020811015613f9657600080fd5b5051613fd657604051600160e51b62461bcd02815260040180806020018281038252602281526020018061545d6022913960400191505060405180910390fd5b61189e614070565b600082820183811015613d5d5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6066805460ff191690556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a1565b60b25460b15460408051600160e01b6370a082310281523060048201529051600093926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156140c257600080fd5b505afa1580156140d6573d6000803e3d6000fd5b505050506040513d60208110156140ec57600080fd5b505160b2819055614103908263ffffffff614d2f16565b91505090565b60008082121561411857600080fd5b5090565b6000614126610d8f565b1161416557604051600160e51b62461bcd02815260040180806020018281038252602481526020018061549f6024913960400191505060405180910390fd5b80156116b4576141a2614176610d8f565b61418a83600160801b63ffffffff6141de16565b8161419157fe5b609c5491900463ffffffff613fde16565b609c5560408051828152905133917f26536799ace2c3dbe12e638ec3ade6b4173dcf1289be0a58d51a5003015649bd919081900360200190a250565b6000826141ed575060006114d3565b828202828482816141fa57fe5b0414613d5d57604051600160e51b62461bcd0281526004018080602001828103825260218152602001806154c36021913960400191505060405180910390fd5b6000808061424e848663ffffffff614e2716565b8454909150811415614267575060009150819050614289565b600184600101828154811061427857fe5b906000526020600020015492509250505b9250929050565b61429a8282614ec8565b6142da6142b5613de483609c546141de90919063ffffffff16565b6001600160a01b0384166000908152609d60205260409020549063ffffffff614d2f16565b6001600160a01b039092166000908152609d602052604090209190915550565b6066805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b303b1590565b6143428282614fbd565b6142da61435d613de483609c546141de90919063ffffffff16565b6001600160a01b0384166000908152609d60205260409020549063ffffffff614cc716565b6000816143d95760408051600160e51b62461bcd02815260206004820152600d60248201527f5a45524f5f4449564953494f4e00000000000000000000000000000000000000604482015290519081900360640190fd5b826143e6575060006114d3565b670de0b6b3a7640000838102908482816143fc57fe5b04146144525760408051600160e51b62461bcd02815260206004820152600c60248201527f4449565f494e5445524e414c0000000000000000000000000000000000000000604482015290519081900360640190fd5b82818161445b57fe5b049150506114d3565b600082820283158061447e57508284828161447b57fe5b04145b6144d25760408051600160e51b62461bcd02815260206004820152600c60248201527f4d554c5f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b670de0b6b3a764000090049392505050565b80421061453b5760408051600160e51b62461bcd02815260206004820152601460248201527f536e617073686f7420696e207468652070617374000000000000000000000000604482015290519081900360640190fd5b6000614546826150bc565b509050801561459f5760408051600160e51b62461bcd02815260206004820152601d60248201527f536e617073686f742065786973747320666f7220746869732074696d65000000604482015290519081900360640190fd5b60a3805460018101825560009182527f60859188cffe297f44dde29f2d2865634621f26215049caeb304ccba566a8b17018390556040805191825260208201849052805130927f8cad7eb54258c06103e9bf7e76d41fbc96c6fe17e0e122e15c9669ebf2e48fc392908290030190a25050565b606061461c613bce565b905060005b815181101561478c578482828151811061463757fe5b6020026020010151141561478457600085815260a7602090815260409091208451614664928601906152da565b508360a8846040518082805190602001908083835b602083106146985780518252601f199092019160209182019101614679565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520805460ff1916961515969096179095558984528815159484019490945250506060818301818152865191830191909152855130937f870eae2b1d96094d2506bdf7e2920e69b502da493662576957e97e74512cea99938a9389938b9360808401919086019080838360005b8381101561474757818101518382015260200161472f565b50505050905090810190601f1680156147745780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a25b600101614621565b5050505050565b8142106147ea5760408051600160e51b62461bcd02815260206004820152601560248201527f536e617073686f7420616c726561647920646f6e650000000000000000000000604482015290519081900360640190fd5b8042106148415760408051600160e51b62461bcd02815260206004820152601460248201527f536e617073686f7420696e207468652070617374000000000000000000000000604482015290519081900360640190fd5b600061484c826150bc565b50905080156148a55760408051600160e51b62461bcd02815260206004820152601d60248201527f536e617073686f742065786973747320666f7220746869732074696d65000000604482015290519081900360640190fd5b6000806148b1856150bc565b91509150816149025760408051600160e51b62461bcd0281526020600482015260126024820152600160721b7114db985c1cda1bdd081b9bdd08199bdd5b9902604482015290519081900360640190fd5b8360a3828154811061491057fe5b6000918252602091829020019190915560408051878152918201869052805130927f8cad7eb54258c06103e9bf7e76d41fbc96c6fe17e0e122e15c9669ebf2e48fc392908290030190a25050505050565b8042106149b85760408051600160e51b62461bcd02815260206004820152601560248201527f536e617073686f7420616c726561647920646f6e650000000000000000000000604482015290519081900360640190fd5b6000806149c4836150bc565b9150915081614a155760408051600160e51b62461bcd0281526020600482015260126024820152600160721b7114db985c1cda1bdd081b9bdd08199bdd5b9902604482015290519081900360640190fd5b614a1e81615109565b60408051848152905130917f36888e5aaf52d39282b94ce50e076f1d7fcadd0ff8301293551ebe2d86f57b4a919081900360200190a2505050565b6001600160a01b038116614aa157604051600160e51b62461bcd0281526004018080602001828103825260268152602001806153ae6026913960400191505060405180910390fd5b6033546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380546001600160a01b0319166001600160a01b0392909216919091179055565b6000614b07615163565b905080156116b45760a28190556116b46151ee565b6001600160a01b0381166000908152609f602052604090206116b490614b41836119a6565b615230565b6112c260a0614b41610d8f565b6001600160a01b038316614b9b57604051600160e51b62461bcd02815260040180806020018281038252602581526020018061557b6025913960400191505060405180910390fd5b6001600160a01b038216614be357604051600160e51b62461bcd0281526004018080602001828103825260238152602001806153696023913960400191505060405180910390fd5b614c26816040518060600160405280602681526020016153f6602691396001600160a01b038616600090815260676020526040902054919063ffffffff613e6c16565b6001600160a01b038085166000908152606760205260408082209390935590841681522054614c5b908263ffffffff613fde16565b6001600160a01b0380841660008181526067602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081818112156114d357600080fd5b6000828201818312801590614cdc5750838112155b80614cf15750600083128015614cf157508381125b613d5d57604051600160e51b62461bcd02815260040180806020018281038252602181526020018061541c6021913960400191505060405180910390fd5b6000818303818312801590614d445750838113155b80614d595750600083128015614d5957508381135b613d5d57604051600160e51b62461bcd0281526004018080602001828103825260248152602001806156046024913960400191505060405180910390fd5b600080614da3836116b7565b6001600160a01b0384166000908152609e6020526040902054909150614dcf908263ffffffff613fde16565b6001600160a01b0384166000818152609e6020908152604091829020939093558051848152905191927feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d92918290030190a292915050565b8154600090614e38575060006114d3565b82546000905b80821015614e87576000614e52838361527a565b905084868281548110614e6157fe5b90600052602060002001541115614e7a57809150614e81565b8060010192505b50614e3e565b600082118015614eaf575083856001840381548110614ea257fe5b9060005260206000200154145b15614ec057506000190190506114d3565b5090506114d3565b6001600160a01b038216614f265760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b606954614f39908263ffffffff613fde16565b6069556001600160a01b038216600090815260676020526040902054614f65908263ffffffff613fde16565b6001600160a01b03831660008181526067602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b03821661500557604051600160e51b62461bcd02815260040180806020018281038252602181526020018061555a6021913960400191505060405180910390fd5b6150488160405180606001604052806022815260200161538c602291396001600160a01b038516600090815260676020526040902054919063ffffffff613e6c16565b6001600160a01b038316600090815260676020526040902055606954615074908263ffffffff613d1b16565b6069556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600080805b60a3548110156150fd578360a382815481106150d957fe5b906000526020600020015414156150f557600192509050610fc9565b6001016150c1565b50600093849350915050565b60a38054600019810190811061511b57fe5b906000526020600020015460a3828154811061513357fe5b60009182526020909120015560a380548061514a57fe5b6001900381819060005260206000200160009055905550565b60a35460009061517557506000610c08565b6000805b60a3548110156151e8574260a3828154811061519157fe5b9060005260206000200154111580156151c057508160a382815481106151b357fe5b9060005260206000200154115b156151e05760a381815481106151d257fe5b906000526020600020015491505b600101615179565b50905090565b60005b60a3548110156116b4574260a3828154811061520957fe5b9060005260206000200154116152275761522281615109565b61522b565b6001015b6151f1565b600061523a61529f565b905080615246846152a5565b101561189e578254600180820185556000858152602080822090930193909355938401805494850181558252902090910155565b6000600280830660028506018161528d57fe5b04600283046002850401019392505050565b60a25490565b80546000906152b657506000610b6f565b8154829060001981019081106152c857fe5b90600052602060002001549050610b6f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061531b57805160ff1916838001178555615348565b82800160010185558215615348579182015b8281111561534857825182559160200191906001019061532d565b5061411892610c089250905b80821115614118576000815560010161535456fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63655369676e6564536166654d6174683a206164646974696f6e206f766572666c6f77436f6e74726163742070617573656400000000000000000000000000000000004644542e776974686472617746756e64733a205452414e534645525f4641494c45440440fd76b4e685d17019b0eef836cea9994650028b99dddfb48be06fa4240aa64644542e5f6469737472696275746546756e64733a20535550504c595f49535f5a45524f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a656445524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737353656e6465722077616c6c6574206e6f742077686974656c697374656400000045524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734f6e6c7920697373756572206d616e616765727320616c6c6f776564000000005369676e6564536166654d6174683a207375627472616374696f6e206f766572666c6f7745524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa165627a7a723058204f5d08f20b0d53e0cca76bac71299e28119a891d43fe85bc6f1c1611680bf17c0029",
    "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102ba5760003560e01c80638456cb5911610182578063b187bd26116100e9578063d21268ef116100a2578063e20c35e51161007c578063e20c35e514610a84578063f2fde38b14610aa1578063f5537ede14610ac7578063fb78ed4014610afd576102ba565b8063d21268ef14610993578063d565a533146109b6578063dd62ed3e14610a56576102ba565b8063b187bd2614610824578063b6fdff181461082c578063bcc88fbd1461086e578063c4d66de814610922578063c9d27afe14610948578063d05166501461096d576102ba565b80639dc29fac1161013b5780639dc29fac1461073f578063a1b4b1ce1461076b578063a312e155146107a7578063a457c2d7146107c4578063a9059cbb146107f0578063a9691f3f1461081c576102ba565b80638456cb59146106cd57806389d29c4c146106d55780638da5cb5b1461071f5780638f32d59b1461072757806395d89b411461072f5780639975038c14610737576102ba565b8063443bb29311610226578063634daf76116101df578063634daf76146105f757806363f04b151461062357806370a0823114610647578063715018a61461066d57806372e0f8531461067557806379c65068146106a1576102ba565b8063443bb293146104f057806345c8b1a61461051657806345f634f21461053c57806346c162de146105ac5780634e97415f146105b45780635ee7a942146105da576102ba565b806324600fc31161027857806324600fc31461042857806324bce60c14610432578063313ce5671461045e578063395093511461047c5780633b345a87146104a85780633f4ba83a146104e8576102ba565b806241c52c146102bf57806306fdde03146102f7578063095ea7b31461037457806318160ddd146103b45780631840f0ca146103bc57806323b872dd146103f2575b600080fd5b6102e5600480360360208110156102d557600080fd5b50356001600160a01b0316610b55565b60408051918252519081900360200190f35b6102ff610b74565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610339578181015183820152602001610321565b50505050905090810190601f1680156103665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a06004803603604081101561038a57600080fd5b506001600160a01b038135169060200135610c0b565b604080519115158252519081900360200190f35b6102e5610d8f565b6103d9600480360360208110156103d257600080fd5b5035610d95565b6040805192835260208301919091528051918290030190f35b6103a06004803603606081101561040857600080fd5b506001600160a01b03813581169160208101359091169060400135610fce565b6104306112b9565b005b6104306004803603604081101561044857600080fd5b506001600160a01b0381351690602001356112c4565b610466611451565b6040805160ff9092168252519081900360200190f35b6103a06004803603604081101561049257600080fd5b506001600160a01b038135169060200135611456565b6104c5600480360360208110156104be57600080fd5b50356114d9565b604080516001600160a01b03909316835260208301919091528051918290030190f35b6104306115c5565b6102e56004803603602081101561050657600080fd5b50356001600160a01b03166116b7565b6104306004803603602081101561052c57600080fd5b50356001600160a01b03166116dd565b6104306004803603602081101561055257600080fd5b81019060208101813564010000000081111561056d57600080fd5b82018360208201111561057f57600080fd5b803590602001918460208302840111640100000000831117156105a157600080fd5b509092509050611867565b6104306118a3565b6102e5600480360360208110156105ca57600080fd5b50356001600160a01b03166118c9565b6102e5600480360360208110156105f057600080fd5b503561191e565b6102e56004803603604081101561060d57600080fd5b50803590602001356001600160a01b031661194e565b61062b611997565b604080516001600160a01b039092168252519081900360200190f35b6102e56004803603602081101561065d57600080fd5b50356001600160a01b03166119a6565b6104306119c1565b6104306004803603604081101561068b57600080fd5b506001600160a01b038135169060200135611a55565b610430600480360360408110156106b757600080fd5b506001600160a01b038135169060200135611be0565b610430611cc4565b610430600480360360c08110156106eb57600080fd5b508035906020810135906001600160a01b0360408201358116916060810135821691608082013581169160a0013516611db3565b61062b611efc565b6103a0611f0b565b6102ff611f31565b610430611f92565b6104306004803603604081101561075557600080fd5b506001600160a01b03813516906020013561217a565b6104306004803603608081101561078157600080fd5b508035906001600160a01b03602082013581169160408101359091169060600135612304565b610430600480360360208110156107bd57600080fd5b503561284c565b6103a0600480360360408110156107da57600080fd5b506001600160a01b038135169060200135612989565b6103a06004803603604081101561080657600080fd5b506001600160a01b038135169060200135612a0f565b6102e5612cab565b6103a0612cb1565b610430600480360360a081101561084257600080fd5b508035906001600160a01b03602082013581169160408101358216916060820135169060800135612cba565b6104306004803603606081101561088457600080fd5b81359160208101351515918101906060810160408201356401000000008111156108ad57600080fd5b8201836020820111156108bf57600080fd5b803590602001918460018302840111640100000000831117156108e157600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061317b945050505050565b6104306004803603602081101561093857600080fd5b50356001600160a01b03166132bc565b6103a06004803603604081101561095e57600080fd5b508035906020013515156133b0565b6102e56004803603602081101561098357600080fd5b50356001600160a01b03166135e9565b610430600480360360408110156109a957600080fd5b5080359060200135613651565b6109d3600480360360208110156109cc57600080fd5b503561378b565b604051808060200183151515158152602001828103825284818151815260200191508051906020019080838360005b83811015610a1a578181015183820152602001610a02565b50505050905090810190601f168015610a475780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b6102e560048036036040811015610a6c57600080fd5b506001600160a01b038135811691602001351661394e565b61043060048036036020811015610a9a57600080fd5b5035613979565b61043060048036036020811015610ab757600080fd5b50356001600160a01b0316613ab2565b61043060048036036060811015610add57600080fd5b506001600160a01b03813581169160208101359091169060400135613b05565b610b05613bce565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610b41578181015183820152602001610b29565b505050509050019250505060405180910390f35b6001600160a01b0381166000908152609e60205260409020545b919050565b60a98054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610c005780601f10610bd557610100808354040283529160200191610c00565b820191906000526020600020905b815481529060010190602001808311610be357829003601f168201915b505050505090505b90565b6001600160a01b038216600090815260b060205260408120548390839081111580610ccf5750816001600160a01b0316610c43611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610c9857600080fd5b505afa158015610cac573d6000803e3d6000fd5b505050506040513d6020811015610cc257600080fd5b50516001600160a01b0316145b80610ce7575060ac546001600160a01b038381169116145b610d295760408051600160e51b62461bcd02815260206004820152601d60248201526000805160206155a0833981519152604482015290519081900360640190fd5b60665460ff1615610d725760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b610d84610d7d613c25565b8686613c29565b506001949350505050565b60695490565b606654600090819060ff1615610de35760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b60408051600080825260208083018085528351902087835260a790915283822080549294859492939192019081908390600260001961010060018416150201909116048015610e695780601f10610e47576101008083540402835291820191610e69565b820191906000526020600020905b815481529060010190602001808311610e55575b50509150506040516020818303038152906040528051906020012014610fc45760a860a760008781526020019081526020016000206040518082805460018160011615610100020316600290048015610ef95780601f10610ed7576101008083540402835291820191610ef9565b820191906000526020600020905b815481529060010190602001808311610ee5575b505092835250506040519081900360200190205460ff16151560011415610fc45760ad5460005b81811015610fc1576000610f558860ad8481548110610f3b57fe5b6000918252602090912001546001600160a01b031661194e565b1115610fb957600087815260a46020526040812060ad805460019096019591929184908110610f8057fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff16151560011415610fb9578360010193505b600101610f20565b50505b925090505b915091565b6000610fd8613c25565b6001600160a01b038116600090815260b0602052604090205483908111158061109a5750816001600160a01b031661100e611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561106357600080fd5b505afa158015611077573d6000803e3d6000fd5b505050506040513d602081101561108d57600080fd5b50516001600160a01b0316145b806110b2575060ac546001600160a01b038381169116145b6110f45760408051600160e51b62461bcd02815260206004820152601d60248201526000805160206155a0833981519152604482015290519081900360640190fd5b60665460ff161561113d5760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b6001600160a01b038616600090815260af602052604090205461116f85611163896119a6565b9063ffffffff613d1b16565b10156111c55760408051600160e51b62461bcd02815260206004820152601560248201527f46756e6473207472616e736665722066726f7a656e0000000000000000000000604482015290519081900360640190fd5b6111d0868686613d64565b6111db868686613dbf565b6111e3613c25565b6001600160a01b0316866001600160a01b0316146112475761124786611207613c25565b611242876040518060600160405280602881526020016154e4602891396112358c611230613c25565b61394e565b919063ffffffff613e6c16565b613c29565b6001600160a01b038516600090815260ae60205260409020546112ad5760ad805460018101825560008051602061547f8339815191520180546001600160a01b0319166001600160a01b0388169081179091559054600091825260ae6020526040909120555b50600195945050505050565b6112c233613f06565b565b6112cc613c25565b806001600160a01b03166112de611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561133357600080fd5b505afa158015611347573d6000803e3d6000fd5b505050506040513d602081101561135d57600080fd5b50516001600160a01b0316146113ab5760408051600160e51b62461bcd02815260206004820152601c60248201526000805160206155e4833981519152604482015290519081900360640190fd5b60665460ff16156113f45760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b6001600160a01b038316600081815260af60205260409020839055611417613c25565b6001600160a01b03167f51d18786e9cb144f87d46e7b796309ea84c7c687d91e09c97f051eacf59bc52860405160405180910390a3505050565b601290565b60665460009060ff16156114a25760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b6114cf6114ad613c25565b84611242856114c36114bd613c25565b8961394e565b9063ffffffff613fde16565b5060015b92915050565b60008060006114e8843361194e565b1115610fc95760408051600080825260208083018085528351902087835260a7909152908390208054919390920190819083906002600019610100600184161502019091160480156115715780601f1061154f576101008083540402835291820191611571565b820191906000526020600020905b81548152906001019060200180831161155d575b50509150506040516020818303038152906040528051906020012014610fc9575050600081815260a660209081526040808320338452909152902080546001909101546001600160a01b0390911690610fc9565b6115cd613c25565b806001600160a01b03166115df611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561163457600080fd5b505afa158015611648573d6000803e3d6000fd5b505050506040513d602081101561165e57600080fd5b50516001600160a01b0316146116ac5760408051600160e51b62461bcd02815260206004820152601c60248201526000805160206155e4833981519152604482015290519081900360640190fd5b6116b461403b565b50565b6001600160a01b0381166000908152609e60205260408120546114d390611163846118c9565b6116e5613c25565b806001600160a01b03166116f7611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561174c57600080fd5b505afa158015611760573d6000803e3d6000fd5b505050506040513d602081101561177657600080fd5b50516001600160a01b0316146117c45760408051600160e51b62461bcd02815260206004820152601c60248201526000805160206155e4833981519152604482015290519081900360640190fd5b60665460ff161561180d5760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b6001600160a01b038216600081815260af602052604081205561182e613c25565b6001600160a01b03167f4f3ab9ff0cc4f039268532098e01239544b0420171876e36889d01c62c784c7960405160405180910390a35050565b60005b8181101561189e5761189683838381811061188157fe5b905060200201356001600160a01b0316613f06565b60010161186a565b505050565b60006118ad614070565b905060008113156116b4576116b46118c482614109565b61411c565b6001600160a01b0381166000908152609d6020526040812054600160801b90611910906118f590614109565b6114c3611901866119a6565b609c549063ffffffff6141de16565b8161191757fe5b0492915050565b600080600061192e8460a061423a565b91509150816119445761193f610d8f565b611946565b805b949350505050565b6001600160a01b0381166000908152609f602052604081208190819061197590869061423a565b915091508161198c57611987846119a6565b61198e565b805b95945050505050565b60b1546001600160a01b031681565b6001600160a01b031660009081526067602052604090205490565b6119c9611f0b565b611a0b5760408051600160e51b62461bcd028152602060048201819052602482015260008051602061550c833981519152604482015290519081900360640190fd5b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380546001600160a01b0319169055565b611a5d613c25565b6001600160a01b038116600090815260b06020526040902054829081111580611b1f5750816001600160a01b0316611a93611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611ae857600080fd5b505afa158015611afc573d6000803e3d6000fd5b505050506040513d6020811015611b1257600080fd5b50516001600160a01b0316145b80611b37575060ac546001600160a01b038381169116145b611b795760408051600160e51b62461bcd02815260206004820152601d60248201526000805160206155a0833981519152604482015290519081900360640190fd5b60665460ff1615611bc25760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b50506001600160a01b03909116600090815260b06020526040902055565b611be8611f0b565b611c2a5760408051600160e51b62461bcd028152602060048201819052602482015260008051602061550c833981519152604482015290519081900360640190fd5b611c3660008383613d64565b611c408282614290565b60ad805460018101825560008051602061547f8339815191520180546001600160a01b0319166001600160a01b0385169081179091559054600082815260ae602090815260409182902092909255805184815290517f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885929181900390910190a25050565b611ccc613c25565b806001600160a01b0316611cde611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611d3357600080fd5b505afa158015611d47573d6000803e3d6000fd5b505050506040513d6020811015611d5d57600080fd5b50516001600160a01b031614611dab5760408051600160e51b62461bcd02815260206004820152601c60248201526000805160206155e4833981519152604482015290519081900360640190fd5b6116b46142fa565b600054610100900460ff1680611dcc5750611dcc614332565b80611dda575060005460ff16155b611e1857604051600160e51b62461bcd02815260040180806020018281038252602e81526020018061552c602e913960400191505060405180910390fd5b600054610100900460ff16158015611e43576000805460ff1961ff0019909116610100171660011790555b611e4c856132bc565b6040805160208082018a90528251808303820181529183019092528051611e779260a99201906152da565b506040805160208082018990528251808303820181529183019092528051611ea39260aa9201906152da565b5060ac80546001600160a01b038087166001600160a01b03199283161790925560ab805486841690831617905560b18054928516929091169190911790558015611ef3576000805461ff00191690555b50505050505050565b6033546001600160a01b031690565b6033546000906001600160a01b0316611f22613c25565b6001600160a01b031614905090565b60aa8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610c005780601f10610bd557610100808354040283529160200191610c00565b611f9a613c25565b806001600160a01b0316611fac611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561200157600080fd5b505afa158015612015573d6000803e3d6000fd5b505050506040513d602081101561202b57600080fd5b50516001600160a01b0316146120795760408051600160e51b62461bcd02815260206004820152601c60248201526000805160206155e4833981519152604482015290519081900360640190fd5b60665460ff16156120c25760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b60ad5460005b8181101561189e5761212f60ad82815481106120e057fe5b9060005260206000200160009054906101000a90046001600160a01b0316600061212a60ad858154811061211057fe5b6000918252602090912001546001600160a01b03166119a6565b613d64565b61217260ad828154811061213f57fe5b9060005260206000200160009054906101000a90046001600160a01b031661216d60ad848154811061211057fe5b614338565b6001016120c8565b612182613c25565b806001600160a01b0316612194611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156121e957600080fd5b505afa1580156121fd573d6000803e3d6000fd5b505050506040513d602081101561221357600080fd5b50516001600160a01b0316146122615760408051600160e51b62461bcd02815260206004820152601c60248201526000805160206155e4833981519152604482015290519081900360640190fd5b60665460ff16156122aa5760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b6122b683600084613d64565b6122c08383614338565b6040805183815290516001600160a01b038516917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2505050565b61230c613c25565b60ab5460408051600160e01b63442767330281526001600160a01b03848116600483015291516000939290921691634427673391602480820192606092909190829003018186803b15801561236057600080fd5b505afa158015612374573d6000803e3d6000fd5b505050506040513d606081101561238a57600080fd5b505190506001600160a01b0382166123a0611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156123f557600080fd5b505afa158015612409573d6000803e3d6000fd5b505050506040513d602081101561241f57600080fd5b50516001600160a01b03161480612444575080600160b91b6821bab9ba37b234b0b702145b6124985760408051600160e51b62461bcd02815260206004820152601760248201527f4e6f7420697373756572206f7220637573746f6469616e000000000000000000604482015290519081900360640190fd5b60665460ff16156124e15760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b60006124ec8761191e565b116125415760408051600160e51b62461bcd02815260206004820152601b60248201527f4e6f207363686564756c656420736e617073686f7420666f756e640000000000604482015290519081900360640190fd5b82846001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561259857600080fd5b505afa1580156125ac573d6000803e3d6000fd5b505050506040513d60208110156125c257600080fd5b5051101561261a5760408051600160e51b62461bcd02815260206004820152601460248201527f496e73756666696369656e742062616c616e6365000000000000000000000000604482015290519081900360640190fd5b6001600160a01b0384161580159061263a57506001600160a01b03851615155b80156126465750600083115b61269a5760408051600160e51b62461bcd02815260206004820152601460248201527f496e76616c696420646973747269627574696f6e000000000000000000000000604482015290519081900360640190fd5b60006126a58761191e565b60ad5490915060005b818110156128415760006126c98a60ad8481548110610f3b57fe5b905080156128385760006126e66126e08387614382565b89614464565b9050886001600160a01b03166323b872dd8b60ad868154811061270557fe5b60009182526020808320909101546040805163ffffffff871660e01b81526001600160a01b0395861660048201529490911660248501526044840187905251606480850194929391928390030190829087803b15801561276457600080fd5b505af1158015612778573d6000803e3d6000fd5b505050506040513d602081101561278e57600080fd5b505060008b815260a66020526040812060ad80548c939190879081106127b057fe5b6000918252602080832091909101546001600160a01b039081168452838201949094526040928301822080546001600160a01b03191695909416949094179092558d825260a690925290812060ad8054849391908790811061280e57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060010155505b506001016126ae565b505050505050505050565b612854613c25565b806001600160a01b0316612866611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156128bb57600080fd5b505afa1580156128cf573d6000803e3d6000fd5b505050506040513d60208110156128e557600080fd5b50516001600160a01b0316146129335760408051600160e51b62461bcd02815260206004820152601c60248201526000805160206155e4833981519152604482015290519081900360640190fd5b60665460ff161561297c5760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b612985826144e4565b5050565b60665460009060ff16156129d55760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b6114cf6129e0613c25565b846112428560405180606001604052806025815260200161562860259139611235612a09613c25565b8a61394e565b6000612a19613c25565b6001600160a01b038116600090815260b06020526040902054839081111580612adb5750816001600160a01b0316612a4f611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015612aa457600080fd5b505afa158015612ab8573d6000803e3d6000fd5b505050506040513d6020811015612ace57600080fd5b50516001600160a01b0316145b80612af3575060ac546001600160a01b038381169116145b612b355760408051600160e51b62461bcd02815260206004820152601d60248201526000805160206155a0833981519152604482015290519081900360640190fd5b60665460ff1615612b7e5760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b60af6000612b8a613c25565b6001600160a01b03166001600160a01b0316815260200190815260200160002054612bbf85611163612bba613c25565b6119a6565b1015612c155760408051600160e51b62461bcd02815260206004820152601560248201527f46756e6473207472616e736665722066726f7a656e0000000000000000000000604482015290519081900360640190fd5b612c27612c20613c25565b8686613d64565b612c39612c32613c25565b8686613dbf565b6001600160a01b038516600090815260ae6020526040902054610d845760ad805460018101825560008051602061547f8339815191520180546001600160a01b0388166001600160a01b031990911681179091559054600091825260ae60205260409091205560019250505092915050565b60b25481565b60665460ff1690565b612cc2613c25565b60ab5460408051600160e01b63442767330281526001600160a01b03848116600483015291516000939290921691634427673391602480820192606092909190829003018186803b158015612d1657600080fd5b505afa158015612d2a573d6000803e3d6000fd5b505050506040513d6060811015612d4057600080fd5b505190506001600160a01b038216612d56611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015612dab57600080fd5b505afa158015612dbf573d6000803e3d6000fd5b505050506040513d6020811015612dd557600080fd5b50516001600160a01b03161480612dfa575080600160b91b6821bab9ba37b234b0b702145b612e4e5760408051600160e51b62461bcd02815260206004820152601760248201527f4e6f7420697373756572206f7220637573746f6469616e000000000000000000604482015290519081900360640190fd5b60665460ff1615612e975760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b6000612ea28861191e565b11612ef75760408051600160e51b62461bcd02815260206004820152601b60248201527f4e6f207363686564756c656420736e617073686f7420666f756e640000000000604482015290519081900360640190fd5b82846001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015612f4e57600080fd5b505afa158015612f62573d6000803e3d6000fd5b505050506040513d6020811015612f7857600080fd5b50511015612fd05760408051600160e51b62461bcd02815260206004820152601460248201527f496e73756666696369656e742062616c616e6365000000000000000000000000604482015290519081900360640190fd5b6000612fdc888861194e565b116130315760408051600160e51b62461bcd02815260206004820152601b60248201527f4e6f74206120736563757269747920746f6b656e20686f6c6465720000000000604482015290519081900360640190fd5b6001600160a01b0384161580159061305157506001600160a01b03851615155b801561305d5750600083115b6130b15760408051600160e51b62461bcd02815260206004820152601460248201527f496e76616c696420646973747269627574696f6e000000000000000000000000604482015290519081900360640190fd5b60408051600160e01b6323b872dd0281526001600160a01b0387811660048301528881166024830152604482018690529151918616916323b872dd916064808201926020929091908290030181600087803b15801561310f57600080fd5b505af1158015613123573d6000803e3d6000fd5b505050506040513d602081101561313957600080fd5b50505060009586525060a6602090815260408087206001600160a01b03968716885290915290942080546001600160a01b031916919093161782555060010155565b613183613c25565b806001600160a01b0316613195611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156131ea57600080fd5b505afa1580156131fe573d6000803e3d6000fd5b505050506040513d602081101561321457600080fd5b50516001600160a01b0316146132625760408051600160e51b62461bcd02815260206004820152601c60248201526000805160206155e4833981519152604482015290519081900360640190fd5b60665460ff16156132ab5760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b6132b6848484614612565b50505050565b600054610100900460ff16806132d557506132d5614332565b806132e3575060005460ff16155b61332157604051600160e51b62461bcd02815260040180806020018281038252602e81526020018061552c602e913960400191505060405180910390fd5b600054610100900460ff1615801561334c576000805460ff1961ff0019909116610100171660011790555b603380546001600160a01b0319166001600160a01b0384811691909117918290556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38015612985576000805461ff00191690555050565b6000806133bd843361194e565b116134125760408051600160e51b62461bcd02815260206004820152601260248201527f556e617574686f72697a656420766f7465720000000000000000000000000000604482015290519081900360640190fd5b600083815260a56020908152604080832033845290915290205460ff166135dc5760408051600080825260208083018085528351902087835260a7909152908390208054919390920190819083906002600019610100600184161502019091160480156134b65780601f106134945761010080835404028352918201916134b6565b820191906000526020600020905b8154815290600101906020018083116134a2575b505091505060405160208183030381529060405280519060200120146135e45760a860a7600085815260200190815260200160002060405180828054600181600116156101000203166002900480156135465780601f10613524576101008083540402835291820191613546565b820191906000526020600020905b815481529060010190602001808311613532575b505092835250506040519081900360200190205460ff161515600114156135dc57600083815260a46020908152604080832033845290915290205460ff166135d75750600082815260a46020908152604080832033808552908352818420805486151560ff199182161790915586855260a584528285209185529252909120805490911660019081179091556114d3565b6135e4565b5060006114d3565b6114d3565b60665460009060ff16156136355760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b506001600160a01b0316600090815260af602052604090205490565b613659613c25565b806001600160a01b031661366b611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156136c057600080fd5b505afa1580156136d4573d6000803e3d6000fd5b505050506040513d60208110156136ea57600080fd5b50516001600160a01b0316146137385760408051600160e51b62461bcd02815260206004820152601c60248201526000805160206155e4833981519152604482015290519081900360640190fd5b60665460ff16156137815760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b61189e8383614793565b60408051600080825260208083018085528351902085835260a7909152838220805460609593949293919290910190819083906002600019610100600184161502019091160480156138145780601f106137f2576101008083540402835291820191613814565b820191906000526020600020905b815481529060010190602001808311613800575b50509150506040516020818303038152906040528051906020012014610fc957600083815260a76020526040908190209051815460a8918391819083906002600019610100600184161502019091160480156138a75780601f106138855761010080835404028352918201916138a7565b820191906000526020600020905b815481529060010190602001808311613893575b50509283525050604080516020928190038301812054845460026101006001831615026000190190911604601f810185900485028301850190935282825260ff16929091849183018282801561393e5780601f106139135761010080835404028352916020019161393e565b820191906000526020600020905b81548152906001019060200180831161392157829003601f168201915b5050505050915091509150610fc9565b6001600160a01b03918216600090815260686020908152604080832093909416825291909152205490565b613981613c25565b806001600160a01b0316613993611efc565b6001600160a01b031663e0a87de1306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156139e857600080fd5b505afa1580156139fc573d6000803e3d6000fd5b505050506040513d6020811015613a1257600080fd5b50516001600160a01b031614613a605760408051600160e51b62461bcd02815260206004820152601c60248201526000805160206155e4833981519152604482015290519081900360640190fd5b60665460ff1615613aa95760408051600160e51b62461bcd02815260206004820152600f602482015260008051602061543d833981519152604482015290519081900360640190fd5b61298582614961565b613aba611f0b565b613afc5760408051600160e51b62461bcd028152602060048201819052602482015260008051602061550c833981519152604482015290519081900360640190fd5b6116b481614a59565b613b0d611f0b565b613b4f5760408051600160e51b62461bcd028152602060048201819052602482015260008051602061550c833981519152604482015290519081900360640190fd5b613b5a838383613d64565b613b65838383613dbf565b6001600160a01b038216600090815260ae602052604090205461189e575060ad805460018101825560008051602061547f8339815191520180546001600160a01b0319166001600160a01b0393909316928317905554600091825260ae60205260409091205550565b606060a3805480602002602001604051908101604052809291908181526020018280548015610c0057602002820191906000526020600020905b815481526020019060010190808311613c08575050505050905090565b3390565b6001600160a01b038316613c7157604051600160e51b62461bcd0281526004018080602001828103825260248152602001806155c06024913960400191505060405180910390fd5b6001600160a01b038216613cb957604051600160e51b62461bcd0281526004018080602001828103825260228152602001806153d46022913960400191505060405180910390fd5b6001600160a01b03808416600081815260686020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000613d5d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613e6c565b9392505050565b613d6c614afd565b6001600160a01b03831615613dae57613d8483614b1c565b6001600160a01b03821615613da157613d9c82614b1c565b613da9565b613da9614b46565b61189e565b613db782614b1c565b61189e614b46565b613dca838383614b53565b6000613de9613de483609c546141de90919063ffffffff16565b614cb7565b6001600160a01b0385166000908152609d6020526040902054909150613e15908263ffffffff614cc716565b6001600160a01b038086166000908152609d60205260408082209390935590851681522054613e4a908263ffffffff614d2f16565b6001600160a01b039093166000908152609d6020526040902092909255505050565b60008184841115613efe57604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ec3578181015183820152602001613eab565b50505050905090810190601f168015613ef05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000613f1182614d97565b60b15460408051600160e01b63a9059cbb0281526001600160a01b03868116600483015260248201859052915193945091169163a9059cbb916044808201926020929091908290030181600087803b158015613f6c57600080fd5b505af1158015613f80573d6000803e3d6000fd5b505050506040513d6020811015613f9657600080fd5b5051613fd657604051600160e51b62461bcd02815260040180806020018281038252602281526020018061545d6022913960400191505060405180910390fd5b61189e614070565b600082820183811015613d5d5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6066805460ff191690556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a1565b60b25460b15460408051600160e01b6370a082310281523060048201529051600093926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156140c257600080fd5b505afa1580156140d6573d6000803e3d6000fd5b505050506040513d60208110156140ec57600080fd5b505160b2819055614103908263ffffffff614d2f16565b91505090565b60008082121561411857600080fd5b5090565b6000614126610d8f565b1161416557604051600160e51b62461bcd02815260040180806020018281038252602481526020018061549f6024913960400191505060405180910390fd5b80156116b4576141a2614176610d8f565b61418a83600160801b63ffffffff6141de16565b8161419157fe5b609c5491900463ffffffff613fde16565b609c5560408051828152905133917f26536799ace2c3dbe12e638ec3ade6b4173dcf1289be0a58d51a5003015649bd919081900360200190a250565b6000826141ed575060006114d3565b828202828482816141fa57fe5b0414613d5d57604051600160e51b62461bcd0281526004018080602001828103825260218152602001806154c36021913960400191505060405180910390fd5b6000808061424e848663ffffffff614e2716565b8454909150811415614267575060009150819050614289565b600184600101828154811061427857fe5b906000526020600020015492509250505b9250929050565b61429a8282614ec8565b6142da6142b5613de483609c546141de90919063ffffffff16565b6001600160a01b0384166000908152609d60205260409020549063ffffffff614d2f16565b6001600160a01b039092166000908152609d602052604090209190915550565b6066805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b303b1590565b6143428282614fbd565b6142da61435d613de483609c546141de90919063ffffffff16565b6001600160a01b0384166000908152609d60205260409020549063ffffffff614cc716565b6000816143d95760408051600160e51b62461bcd02815260206004820152600d60248201527f5a45524f5f4449564953494f4e00000000000000000000000000000000000000604482015290519081900360640190fd5b826143e6575060006114d3565b670de0b6b3a7640000838102908482816143fc57fe5b04146144525760408051600160e51b62461bcd02815260206004820152600c60248201527f4449565f494e5445524e414c0000000000000000000000000000000000000000604482015290519081900360640190fd5b82818161445b57fe5b049150506114d3565b600082820283158061447e57508284828161447b57fe5b04145b6144d25760408051600160e51b62461bcd02815260206004820152600c60248201527f4d554c5f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b670de0b6b3a764000090049392505050565b80421061453b5760408051600160e51b62461bcd02815260206004820152601460248201527f536e617073686f7420696e207468652070617374000000000000000000000000604482015290519081900360640190fd5b6000614546826150bc565b509050801561459f5760408051600160e51b62461bcd02815260206004820152601d60248201527f536e617073686f742065786973747320666f7220746869732074696d65000000604482015290519081900360640190fd5b60a3805460018101825560009182527f60859188cffe297f44dde29f2d2865634621f26215049caeb304ccba566a8b17018390556040805191825260208201849052805130927f8cad7eb54258c06103e9bf7e76d41fbc96c6fe17e0e122e15c9669ebf2e48fc392908290030190a25050565b606061461c613bce565b905060005b815181101561478c578482828151811061463757fe5b6020026020010151141561478457600085815260a7602090815260409091208451614664928601906152da565b508360a8846040518082805190602001908083835b602083106146985780518252601f199092019160209182019101614679565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520805460ff1916961515969096179095558984528815159484019490945250506060818301818152865191830191909152855130937f870eae2b1d96094d2506bdf7e2920e69b502da493662576957e97e74512cea99938a9389938b9360808401919086019080838360005b8381101561474757818101518382015260200161472f565b50505050905090810190601f1680156147745780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a25b600101614621565b5050505050565b8142106147ea5760408051600160e51b62461bcd02815260206004820152601560248201527f536e617073686f7420616c726561647920646f6e650000000000000000000000604482015290519081900360640190fd5b8042106148415760408051600160e51b62461bcd02815260206004820152601460248201527f536e617073686f7420696e207468652070617374000000000000000000000000604482015290519081900360640190fd5b600061484c826150bc565b50905080156148a55760408051600160e51b62461bcd02815260206004820152601d60248201527f536e617073686f742065786973747320666f7220746869732074696d65000000604482015290519081900360640190fd5b6000806148b1856150bc565b91509150816149025760408051600160e51b62461bcd0281526020600482015260126024820152600160721b7114db985c1cda1bdd081b9bdd08199bdd5b9902604482015290519081900360640190fd5b8360a3828154811061491057fe5b6000918252602091829020019190915560408051878152918201869052805130927f8cad7eb54258c06103e9bf7e76d41fbc96c6fe17e0e122e15c9669ebf2e48fc392908290030190a25050505050565b8042106149b85760408051600160e51b62461bcd02815260206004820152601560248201527f536e617073686f7420616c726561647920646f6e650000000000000000000000604482015290519081900360640190fd5b6000806149c4836150bc565b9150915081614a155760408051600160e51b62461bcd0281526020600482015260126024820152600160721b7114db985c1cda1bdd081b9bdd08199bdd5b9902604482015290519081900360640190fd5b614a1e81615109565b60408051848152905130917f36888e5aaf52d39282b94ce50e076f1d7fcadd0ff8301293551ebe2d86f57b4a919081900360200190a2505050565b6001600160a01b038116614aa157604051600160e51b62461bcd0281526004018080602001828103825260268152602001806153ae6026913960400191505060405180910390fd5b6033546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380546001600160a01b0319166001600160a01b0392909216919091179055565b6000614b07615163565b905080156116b45760a28190556116b46151ee565b6001600160a01b0381166000908152609f602052604090206116b490614b41836119a6565b615230565b6112c260a0614b41610d8f565b6001600160a01b038316614b9b57604051600160e51b62461bcd02815260040180806020018281038252602581526020018061557b6025913960400191505060405180910390fd5b6001600160a01b038216614be357604051600160e51b62461bcd0281526004018080602001828103825260238152602001806153696023913960400191505060405180910390fd5b614c26816040518060600160405280602681526020016153f6602691396001600160a01b038616600090815260676020526040902054919063ffffffff613e6c16565b6001600160a01b038085166000908152606760205260408082209390935590841681522054614c5b908263ffffffff613fde16565b6001600160a01b0380841660008181526067602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081818112156114d357600080fd5b6000828201818312801590614cdc5750838112155b80614cf15750600083128015614cf157508381125b613d5d57604051600160e51b62461bcd02815260040180806020018281038252602181526020018061541c6021913960400191505060405180910390fd5b6000818303818312801590614d445750838113155b80614d595750600083128015614d5957508381135b613d5d57604051600160e51b62461bcd0281526004018080602001828103825260248152602001806156046024913960400191505060405180910390fd5b600080614da3836116b7565b6001600160a01b0384166000908152609e6020526040902054909150614dcf908263ffffffff613fde16565b6001600160a01b0384166000818152609e6020908152604091829020939093558051848152905191927feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d92918290030190a292915050565b8154600090614e38575060006114d3565b82546000905b80821015614e87576000614e52838361527a565b905084868281548110614e6157fe5b90600052602060002001541115614e7a57809150614e81565b8060010192505b50614e3e565b600082118015614eaf575083856001840381548110614ea257fe5b9060005260206000200154145b15614ec057506000190190506114d3565b5090506114d3565b6001600160a01b038216614f265760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b606954614f39908263ffffffff613fde16565b6069556001600160a01b038216600090815260676020526040902054614f65908263ffffffff613fde16565b6001600160a01b03831660008181526067602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b03821661500557604051600160e51b62461bcd02815260040180806020018281038252602181526020018061555a6021913960400191505060405180910390fd5b6150488160405180606001604052806022815260200161538c602291396001600160a01b038516600090815260676020526040902054919063ffffffff613e6c16565b6001600160a01b038316600090815260676020526040902055606954615074908263ffffffff613d1b16565b6069556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600080805b60a3548110156150fd578360a382815481106150d957fe5b906000526020600020015414156150f557600192509050610fc9565b6001016150c1565b50600093849350915050565b60a38054600019810190811061511b57fe5b906000526020600020015460a3828154811061513357fe5b60009182526020909120015560a380548061514a57fe5b6001900381819060005260206000200160009055905550565b60a35460009061517557506000610c08565b6000805b60a3548110156151e8574260a3828154811061519157fe5b9060005260206000200154111580156151c057508160a382815481106151b357fe5b9060005260206000200154115b156151e05760a381815481106151d257fe5b906000526020600020015491505b600101615179565b50905090565b60005b60a3548110156116b4574260a3828154811061520957fe5b9060005260206000200154116152275761522281615109565b61522b565b6001015b6151f1565b600061523a61529f565b905080615246846152a5565b101561189e578254600180820185556000858152602080822090930193909355938401805494850181558252902090910155565b6000600280830660028506018161528d57fe5b04600283046002850401019392505050565b60a25490565b80546000906152b657506000610b6f565b8154829060001981019081106152c857fe5b90600052602060002001549050610b6f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061531b57805160ff1916838001178555615348565b82800160010185558215615348579182015b8281111561534857825182559160200191906001019061532d565b5061411892610c089250905b80821115614118576000815560010161535456fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63655369676e6564536166654d6174683a206164646974696f6e206f766572666c6f77436f6e74726163742070617573656400000000000000000000000000000000004644542e776974686472617746756e64733a205452414e534645525f4641494c45440440fd76b4e685d17019b0eef836cea9994650028b99dddfb48be06fa4240aa64644542e5f6469737472696275746546756e64733a20535550504c595f49535f5a45524f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a656445524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737353656e6465722077616c6c6574206e6f742077686974656c697374656400000045524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734f6e6c7920697373756572206d616e616765727320616c6c6f776564000000005369676e6564536166654d6174683a207375627472616374696f6e206f766572666c6f7745524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa165627a7a723058204f5d08f20b0d53e0cca76bac71299e28119a891d43fe85bc6f1c1611680bf17c0029",
    "sourceMap": "406:13325:22:-;;;;;;;;;",
    "deployedSourceMap": "406:13325:22:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;406:13325:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3962:119:19;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3962:119:19;-1:-1:-1;;;;;3962:119:19;;:::i;:::-;;;;;;;;;;;;;;;;3233:83:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3233:83:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5429:239;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5429:239:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1636:89:4;;;:::i;9240:851:22:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9240:851:22;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5826:724;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5826:724:22;;;;;;;;;;;;;;;;;:::i;11950:82::-;;;:::i;:::-;;7149:224;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7149:224:22;;;;;;;;:::i;3607:76::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6558:262;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6558:262:22;;;;;;;;:::i;2898:411:18:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2898:411:18;;:::i;:::-;;;;-1:-1:-1;;;;;2898:411:18;;;;;;;;;;;;;;;;;;;;;13641:85:22;;;:::i;3557:155:19:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3557:155:19;-1:-1:-1;;;;;3557:155:19;;:::i;7381:208:22:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7381:208:22;-1:-1:-1;;;;;7381:208:22;;:::i;12117:172::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12117:172:22;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;12117:172:22;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;12117:172:22;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;12117:172:22;;-1:-1:-1;12117:172:22;-1:-1:-1;12117:172:22;:::i;12812:202::-;;;:::i;4541::19:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4541:202:19;-1:-1:-1;;;;;4541:202:19;;:::i;2702:257:23:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2702:257:23;;:::i;2379:315::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2379:315:23;;;;;;-1:-1:-1;;;;;2379:315:23;;:::i;1226:24:22:-;;;:::i;:::-;;;;-1:-1:-1;;;;;1226:24:22;;;;;;;;;;;;;;1783:108:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1783:108:4;-1:-1:-1;;;;;1783:108:4;;:::i;1746:137:3:-;;;:::i;4353:201:22:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4353:201:22;;;;;;;;:::i;3691:282::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3691:282:22;;;;;;;;:::i;13552:81::-;;;:::i;2759:404::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;2759:404:22;;;;;;;;-1:-1:-1;;;;;2759:404:22;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;959:77:3:-;;;:::i;1310:92::-;;;:::i;3435:87:22:-;;;:::i;8053:354::-;;;:::i;7762:283::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7762:283:22;;;;;;;;:::i;10104:1032::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;10104:1032:22;;;-1:-1:-1;;;;;10104:1032:22;;;;;;;;;;;;;;;;;;;:::i;8415:174::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8415:174:22;;:::i;6828:313::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6828:313:22;;;;;;;;:::i;4693:558::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4693:558:22;;;;;;;;:::i;1337:32::-;;;:::i;753:79:33:-;;;:::i;11144:715:22:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;11144:715:22;;;-1:-1:-1;;;;;11144:715:22;;;;;;;;;;;;;;;;;;;;;;;;:::i;9001:227::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9001:227:22;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;9001:227:22;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9001:227:22;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;9001:227:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;9001:227:22;;-1:-1:-1;9001:227:22;;-1:-1:-1;;;;;9001:227:22:i;741:142:3:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;741:142:3;-1:-1:-1;;;;;741:142:3;;:::i;2023:729:18:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2023:729:18;;;;;;;;;:::i;7597:157:22:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7597:157:22;-1:-1:-1;;;;;7597:157:22;;:::i;8597:210::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8597:210:22;;;;;;;:::i;1707:260:18:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1707:260:18;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1707:260:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2307:132:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2307:132:4;;;;;;;;;;:::i;8815:178:22:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8815:178:22;;:::i;2032:107:3:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2032:107:3;-1:-1:-1;;;;;2032:107:3;;:::i;3981:364:22:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3981:364:22;;;;;;;;;;;;;;;;;:::i;2259:112:23:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2259:112:23;;;;;;;;;;;;;;;;;3962:119:19;-1:-1:-1;;;;;4051:22:19;;4024:7;4051:22;;;:14;:22;;;;;;3962:119;;;;:::o;3233:83:22:-;3303:5;3296:12;;;;;;;;-1:-1:-1;;3296:12:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3270:13;;3296:12;;3303:5;;3296:12;;3303:5;3296:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3233:83;;:::o;5429:239::-;-1:-1:-1;;;;;2287:19:22;;5528:4;2287:19;;;:11;:19;;;;;;5495:7;;5504:6;;2287:29;-1:-1:-1;2287:29:22;;:79;;;2360:6;-1:-1:-1;;;;;2320:46:22;2329:7;:5;:7::i;:::-;-1:-1:-1;;;;;2320:23:22;;2352:4;2320:38;;;;;;;;;;;;;-1:-1:-1;;;;;2320:38:22;-1:-1:-1;;;;;2320:38:22;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2320:38:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2320:38:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2320:38:22;-1:-1:-1;;;;;2320:46:22;;2287:79;:98;;;-1:-1:-1;2378:7:22;;-1:-1:-1;;;;;2370:15:22;;;2378:7;;2370:15;2287:98;2279:140;;;;;-1:-1:-1;;;;;2279:140:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2279:140:22;;;;;;;;;;;;;;;5553:6;;;;:15;5545:43;;;;;-1:-1:-1;;;;;5545:43:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5545:43:22;;;;;;;;;;;;;;;5599:39;5608:12;:10;:12::i;:::-;5622:7;5631:6;5599:8;:39::i;:::-;-1:-1:-1;5656:4:22;;5429:239;-1:-1:-1;;;;5429:239:22:o;1636:89:4:-;1706:12;;1636:89;:::o;9240:851:22:-;9375:6;;9329:13;;;;9375:6;;:15;9367:43;;;;;-1:-1:-1;;;;;9367:43:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9367:43:22;;;;;;;;;;;;;;;9549:20;;;9421:17;6:49:-1;;;9549:20:22;;;;;;;9539:31;;;;9516:17;;;:11;:17;;;;;;9499:35;;9421:17;;;;9539:31;;9516:17;;9499:35;;;;9516:17;;9499:35;-1:-1:-1;;9499:35:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9499:35:22;;;9489:46;;;;;;:81;9486:550;;9589:6;9596:11;:17;9608:4;9596:17;;;;;;;;;;;9589:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9589:25:22;;;-1:-1:-1;;9589:25:22;;;;;;;;;;;;;:31;;:25;:31;9586:439;;;9660:7;:14;9646:11;9703:307;9722:6;9720:1;:8;9703:307;;;9796:1;9760:35;9778:4;9784:7;9792:1;9784:10;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9784:10:22;9760:17;:35::i;:::-;:37;9757:234;;;9882:11;;;;:5;:11;;;;;9894:7;:10;;9851:1;9838:14;;;;9882:11;;;9902:1;;9894:10;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9894:10:22;9882:23;;;;;;;;;;;;;;;:29;;9894:10;9882:29;9879:88;;;9954:9;9966:1;9954:13;9942:25;;9879:88;9730:3;;9703:307;;;;9586:439;;10054:10;-1:-1:-1;10066:9:22;-1:-1:-1;9240:851:22;;;;:::o;5826:724::-;5953:4;5922:12;:10;:12::i;:::-;-1:-1:-1;;;;;2287:19:22;;;;;;:11;:19;;;;;;5936:6;;2287:29;-1:-1:-1;2287:29:22;;:79;;;2360:6;-1:-1:-1;;;;;2320:46:22;2329:7;:5;:7::i;:::-;-1:-1:-1;;;;;2320:23:22;;2352:4;2320:38;;;;;;;;;;;;;-1:-1:-1;;;;;2320:38:22;-1:-1:-1;;;;;2320:38:22;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2320:38:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2320:38:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2320:38:22;-1:-1:-1;;;;;2320:46:22;;2287:79;:98;;;-1:-1:-1;2378:7:22;;-1:-1:-1;;;;;2370:15:22;;;2378:7;;2370:15;2287:98;2279:140;;;;;-1:-1:-1;;;;;2279:140:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2279:140:22;;;;;;;;;;;;;;;5978:6;;;;:15;5970:43;;;;;-1:-1:-1;;;;;5970:43:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5970:43:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;6065:13:22;;;;;;:5;:13;;;;;;6032:29;6054:6;6032:17;6071:6;6032:9;:17::i;:::-;:21;:29;:21;:29;:::i;:::-;:46;;6024:80;;;;;-1:-1:-1;;;;;6024:80:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;6115:47;6136:6;6144:9;6155:6;6115:20;:47::i;:::-;6173:36;6183:6;6191:9;6202:6;6173:9;:36::i;:::-;6233:12;:10;:12::i;:::-;-1:-1:-1;;;;;6223:22:22;:6;-1:-1:-1;;;;;6223:22:22;;6220:159;;6260:119;6269:6;6277:12;:10;:12::i;:::-;6291:87;6327:6;6291:87;;;;;;;;;;;;;;;;;:31;6301:6;6309:12;:10;:12::i;:::-;6291:9;:31::i;:::-;:35;:87;;:35;:87;:::i;:::-;6260:8;:119::i;:::-;-1:-1:-1;;;;;6393:22:22;;;;;;:11;:22;;;;;;6390:131;;6434:7;27:10:-1;;39:1;23:18;;45:23;;-1:-1;;;;;;;;;;;6434:23:22;;;-1:-1:-1;;;;;;6434:23:22;-1:-1:-1;;;;;6434:23:22;;;;;;;;6495:14;;-1:-1:-1;6472:22:22;;;:11;6434:23;6472:22;;;;;:37;6390:131;-1:-1:-1;6538:4:22;;5826:724;-1:-1:-1;;;;;5826:724:22:o;11950:82::-;11995:29;12013:10;11995:17;:29::i;:::-;11950:82::o;7149:224::-;7221:12;:10;:12::i;:::-;2144:6;-1:-1:-1;;;;;2104:46:22;2113:7;:5;:7::i;:::-;-1:-1:-1;;;;;2104:23:22;;2136:4;2104:38;;;;;;;;;;;;;-1:-1:-1;;;;;2104:38:22;-1:-1:-1;;;;;2104:38:22;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2104:38:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2104:38:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2104:38:22;-1:-1:-1;;;;;2104:46:22;;2096:87;;;;;-1:-1:-1;;;;;2096:87:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2096:87:22;;;;;;;;;;;;;;;7253:6;;;;:15;7245:43;;;;;-1:-1:-1;;;;;7245:43:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7245:43:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;7299:13:22;;;;;;:5;:13;;;;;:22;;;7344:12;:10;:12::i;:::-;-1:-1:-1;;;;;7337:28:22;;;;;;;;;;;7149:224;;;:::o;3607:76::-;3673:2;3607:76;:::o;6558:262::-;6663:6;;6638:4;;6663:6;;:15;6655:43;;;;;-1:-1:-1;;;;;6655:43:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6655:43:22;;;;;;;;;;;;;;;6709:81;6718:12;:10;:12::i;:::-;6732:7;6741:48;6778:10;6741:32;6751:12;:10;:12::i;:::-;6765:7;6741:9;:32::i;:::-;:36;:48;:36;:48;:::i;6709:81::-;-1:-1:-1;6808:4:22;6558:262;;;;;:::o;2898:411:18:-;2957:7;2966;3024:1;2988:35;3006:4;3012:10;2988:17;:35::i;:::-;:37;2985:317;;;3148:20;;;;6:49:-1;;;3148:20:18;;;;;;;3138:31;;;;3115:17;;;:11;:17;;;;;;;3098:35;;3138:31;;3115:17;;3098:35;;;;3115:17;;3098:35;-1:-1:-1;;3098:35:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3098:35:18;;;3088:46;;;;;;:81;3085:206;;-1:-1:-1;;3197:19:18;;;;:13;:19;;;;;;;;3217:10;3197:31;;;;;;;:37;;;3236:38;;;;-1:-1:-1;;;;;3197:37:18;;;;3189:86;;13641:85:22;13684:12;:10;:12::i;:::-;2144:6;-1:-1:-1;;;;;2104:46:22;2113:7;:5;:7::i;:::-;-1:-1:-1;;;;;2104:23:22;;2136:4;2104:38;;;;;;;;;;;;;-1:-1:-1;;;;;2104:38:22;-1:-1:-1;;;;;2104:38:22;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2104:38:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2104:38:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2104:38:22;-1:-1:-1;;;;;2104:46:22;;2096:87;;;;;-1:-1:-1;;;;;2096:87:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2096:87:22;;;;;;;;;;;;;;;13708:10;:8;:10::i;:::-;13641:85;:::o;3557:155:19:-;-1:-1:-1;;;;;3681:22:19;;3622:7;3681:22;;;:14;:22;;;;;;3649:55;;:27;3696:6;3649:19;:27::i;7381:208:22:-;7439:12;:10;:12::i;:::-;2144:6;-1:-1:-1;;;;;2104:46:22;2113:7;:5;:7::i;:::-;-1:-1:-1;;;;;2104:23:22;;2136:4;2104:38;;;;;;;;;;;;;-1:-1:-1;;;;;2104:38:22;-1:-1:-1;;;;;2104:38:22;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2104:38:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2104:38:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2104:38:22;-1:-1:-1;;;;;2104:46:22;;2096:87;;;;;-1:-1:-1;;;;;2096:87:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2096:87:22;;;;;;;;;;;;;;;7472:6;;;;:15;7464:43;;;;;-1:-1:-1;;;;;7464:43:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7464:43:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;7518:13:22;;7534:1;7518:13;;;:5;:13;;;;;:17;7560:12;:10;:12::i;:::-;-1:-1:-1;;;;;7551:30:22;;;;;;;;;;;7381:208;;:::o;12117:172::-;12188:9;12183:99;12203:17;;;12183:99;;;12242:28;12260:6;;12267:1;12260:9;;;;;;;;;;;;;-1:-1:-1;;;;;12260:9:22;12242:17;:28::i;:::-;12222:3;;12183:99;;;;12117:172;;:::o;12812:202::-;12863:15;12881:26;:24;:26::i;:::-;12863:44;;12935:1;12924:8;:12;12920:87;;;12953:42;12970:24;:8;:22;:24::i;:::-;12953:16;:42::i;4541:202:19:-;-1:-1:-1;;;;;4675:24:19;;4606:7;4675:24;;;:16;:24;;;;;;-1:-1:-1;;;1438:6:19;4633:83;;4675:40;;:38;:40::i;:::-;4633:37;4652:17;4662:6;4652:9;:17::i;:::-;4633:14;;;:37;:18;:37;:::i;:83::-;:102;;;;;;;4541:202;-1:-1:-1;;4541:202:19:o;2702:257:23:-;2766:7;2787:16;2805:13;2822:74;2845:4;2864:21;2822:8;:74::i;:::-;2786:110;;;;2916:11;:35;;2938:13;:11;:13::i;:::-;2916:35;;;2930:5;2916:35;2909:42;2702:257;-1:-1:-1;;;;2702:257:23:o;2379:315::-;-1:-1:-1;;;;;2586:31:23;;2483:7;2586:31;;;:24;:31;;;;;2483:7;;;;2544:84;;2567:4;;2544:8;:84::i;:::-;2508:120;;;;2648:11;:38;;2670:16;2680:5;2670:9;:16::i;:::-;2648:38;;;2662:5;2648:38;2641:45;2379:315;-1:-1:-1;;;;;2379:315:23:o;1226:24:22:-;;;-1:-1:-1;;;;;1226:24:22;;:::o;1783:108:4:-;-1:-1:-1;;;;;1866:18:4;1840:7;1866:18;;;:9;:18;;;;;;;1783:108::o;1746:137:3:-;1163:9;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:3;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1155:54:3;;;;;;;;;;;;;;;1828:6;;1807:40;;1844:1;;-1:-1:-1;;;;;1828:6:3;;1807:40;;1844:1;;1807:40;1857:6;:19;;-1:-1:-1;;;;;;1857:19:3;;;1746:137::o;4353:201:22:-;4421:12;:10;:12::i;:::-;-1:-1:-1;;;;;2287:19:22;;;;;;:11;:19;;;;;;4435:6;;2287:29;-1:-1:-1;2287:29:22;;:79;;;2360:6;-1:-1:-1;;;;;2320:46:22;2329:7;:5;:7::i;:::-;-1:-1:-1;;;;;2320:23:22;;2352:4;2320:38;;;;;;;;;;;;;-1:-1:-1;;;;;2320:38:22;-1:-1:-1;;;;;2320:38:22;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2320:38:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2320:38:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2320:38:22;-1:-1:-1;;;;;2320:46:22;;2287:79;:98;;;-1:-1:-1;2378:7:22;;-1:-1:-1;;;;;2370:15:22;;;2378:7;;2370:15;2287:98;2279:140;;;;;-1:-1:-1;;;;;2279:140:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2279:140:22;;;;;;;;;;;;;;;4471:6;;;;:15;4463:43;;;;;-1:-1:-1;;;;;4463:43:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4463:43:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;4517:20:22;;;;;;;:11;:20;;;;;:29;4353:201::o;3691:282::-;1163:9:3;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:3;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1155:54:3;;;;;;;;;;;;;;;3771:50:22;3800:3;3806:6;3814;3771:20;:50::i;:::-;3832:21;3838:6;3846;3832:5;:21::i;:::-;3864:7;27:10:-1;;39:1;23:18;;45:23;;-1:-1;;;;;;;;;;;3864:20:22;;;-1:-1:-1;;;;;;3864:20:22;-1:-1:-1;;;;;3864:20:22;;;;;;;;3915:14;;-1:-1:-1;3895:19:22;;;:11;3864:20;3895:19;;;;;;;;:34;;;;3945:20;;;;;;;;;;;;;;;;;;3691:282;;:::o;13552:81::-;13593:12;:10;:12::i;:::-;2144:6;-1:-1:-1;;;;;2104:46:22;2113:7;:5;:7::i;:::-;-1:-1:-1;;;;;2104:23:22;;2136:4;2104:38;;;;;;;;;;;;;-1:-1:-1;;;;;2104:38:22;-1:-1:-1;;;;;2104:38:22;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2104:38:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2104:38:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2104:38:22;-1:-1:-1;;;;;2104:46:22;;2096:87;;;;;-1:-1:-1;;;;;2096:87:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2096:87:22;;;;;;;;;;;;;;;13617:8;:6;:8::i;2759:404::-;1024:12:7;;;;;;;;:31;;;1040:15;:13;:15::i;:::-;1024:47;;;-1:-1:-1;1060:11:7;;;;1059:12;1024:47;1016:106;;;;-1:-1:-1;;;;;1016:106:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1129:19;1152:12;;;;;;1151:13;1170:80;;;;1198:12;:19;;-1:-1:-1;;;;1198:19:7;;;;;1225:18;1213:4;1225:18;;;1170:80;2915:26:22;2934:6;2915:18;:26::i;:::-;2967:23;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;2967:23:22;;;;;;2952:39;;;;:5;;:39;;;:::i;:::-;-1:-1:-1;3019:25:22;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;3019:25:22;;;;;;3002:43;;;;:7;;:43;;;:::i;:::-;-1:-1:-1;3056:7:22;:16;;-1:-1:-1;;;;;3056:16:22;;;-1:-1:-1;;;;;;3056:16:22;;;;;;;3083:7;:32;;;;;;;;;;;3126:10;:29;;;;;;;;;;;;;;;1264:55:7;;;;1307:5;1292:20;;-1:-1:-1;;1292:20:7;;;1264:55;2759:404:22;;;;;;;:::o;959:77:3:-;1023:6;;-1:-1:-1;;;;;1023:6:3;959:77;:::o;1310:92::-;1389:6;;1350:4;;-1:-1:-1;;;;;1389:6:3;1373:12;:10;:12::i;:::-;-1:-1:-1;;;;;1373:22:3;;1366:29;;1310:92;:::o;3435:87:22:-;3507:7;3500:14;;;;;;;;-1:-1:-1;;3500:14:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3474:13;;3500:14;;3507:7;;3500:14;;3507:7;3500:14;;;;;;;;;;;;;;;;;;;;;;;;8053:354;8096:12;:10;:12::i;:::-;2144:6;-1:-1:-1;;;;;2104:46:22;2113:7;:5;:7::i;:::-;-1:-1:-1;;;;;2104:23:22;;2136:4;2104:38;;;;;;;;;;;;;-1:-1:-1;;;;;2104:38:22;-1:-1:-1;;;;;2104:38:22;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2104:38:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2104:38:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2104:38:22;-1:-1:-1;;;;;2104:46:22;;2096:87;;;;;-1:-1:-1;;;;;2096:87:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2096:87:22;;;;;;;;;;;;;;;8129:6;;;;:15;8121:43;;;;;-1:-1:-1;;;;;8121:43:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8121:43:22;;;;;;;;;;;;;;;8189:7;:14;8175:11;8214:182;8233:6;8231:1;:8;8214:182;;;8260:69;8281:7;8289:1;8281:10;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8281:10:22;8301:3;8307:21;8317:7;8325:1;8317:10;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8317:10:22;8307:9;:21::i;:::-;8260:20;:69::i;:::-;8344:40;8350:7;8358:1;8350:10;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8350:10:22;8362:21;8372:7;8380:1;8372:10;;;;;;;8362:21;8344:5;:40::i;:::-;8241:3;;8214:182;;7762:283;7832:12;:10;:12::i;:::-;2144:6;-1:-1:-1;;;;;2104:46:22;2113:7;:5;:7::i;:::-;-1:-1:-1;;;;;2104:23:22;;2136:4;2104:38;;;;;;;;;;;;;-1:-1:-1;;;;;2104:38:22;-1:-1:-1;;;;;2104:38:22;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2104:38:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2104:38:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2104:38:22;-1:-1:-1;;;;;2104:46:22;;2096:87;;;;;-1:-1:-1;;;;;2096:87:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2096:87:22;;;;;;;;;;;;;;;7865:6;;;;:15;7857:43;;;;;-1:-1:-1;;;;;7857:43:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7857:43:22;;;;;;;;;;;;;;;7911:50;7932:6;7948:3;7954:6;7911:20;:50::i;:::-;7972:21;7978:6;7986;7972:5;:21::i;:::-;8016:20;;;;;;;;-1:-1:-1;;;;;8016:20:22;;;;;;;;;;;;;7762:283;;;:::o;10104:1032::-;10223:12;:10;:12::i;:::-;1860:7;;:23;;;-1:-1:-1;;;;;1860:23:22;;-1:-1:-1;;;;;1860:23:22;;;;;;;;;1840:12;;1860:7;;;;;:15;;:23;;;;;;;;;;;;;;;:7;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;1860:23:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1860:23:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1860:23:22;;-1:-1:-1;;;;;;1902:46:22;;1911:7;:5;:7::i;:::-;-1:-1:-1;;;;;1902:23:22;;1934:4;1902:38;;;;;;;;;;;;;-1:-1:-1;;;;;1902:38:22;-1:-1:-1;;;;;1902:38:22;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1902:38:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1902:38:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1902:38:22;-1:-1:-1;;;;;1902:46:22;;;:67;;;1952:4;-1:-1:-1;;;;;1952:17:22;1902:67;1894:121;;;;;-1:-1:-1;;;;;1894:121:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;10256:6;;;;:15;10248:43;;;;;-1:-1:-1;;;;;10248:43:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10248:43:22;;;;;;;;;;;;;;;10336:1;10310:25;10330:4;10310:19;:25::i;:::-;:27;10302:67;;;;;-1:-1:-1;;;;;10302:67:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;10422:6;10394:5;-1:-1:-1;;;;;10388:22:22;;10411:6;10388:30;;;;;;;;;;;;;-1:-1:-1;;;;;10388:30:22;-1:-1:-1;;;;;10388:30:22;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10388:30:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10388:30:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10388:30:22;:40;;10380:73;;;;;-1:-1:-1;;;;;10380:73:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10472:19:22;;;;;;:43;;-1:-1:-1;;;;;;10495:20:22;;;;10472:43;:55;;;;;10526:1;10519:6;:8;10472:55;10464:88;;;;;-1:-1:-1;;;;;10464:88:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;10563:21;10587:25;10607:4;10587:19;:25::i;:::-;10637:7;:14;10563:49;;-1:-1:-1;10623:11:22;10662:467;10681:6;10679:1;:8;10662:467;;;10708:15;10726:35;10744:4;10750:7;10758:1;10750:10;;;;;;;10726:35;10708:53;-1:-1:-1;10779:11:22;;10776:342;;10810:15;10828:70;10847:42;10866:7;10875:13;10847:18;:42::i;:::-;10891:6;10828:18;:70::i;:::-;10810:88;;10923:5;-1:-1:-1;;;;;10917:25:22;;10943:6;10951:7;10959:1;10951:10;;;;;;;;;;;;;;;;;;;;10917:54;;;;;;;;;;-1:-1:-1;;;;;10917:54:22;;;;;;;10951:10;;;;10917:54;;;;;;;;;;;;;;;;10951:10;;10917:54;;;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;10917:54:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10917:54:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;10990:19:22;;;;:13;10917:54;10990:19;;;;11010:7;:10;;11030:5;;10990:19;11010:7;11018:1;;11010:10;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11010:10:22;;;10990:31;;;;;;;;;;;;;;;:45;;-1:-1:-1;;;;;;10990:45:22;;;;;;;;;;;;11054:19;;;:13;:19;;;;;;11074:7;:10;;11095:7;;11010:10;11074:7;11082:1;;11074:10;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11074:10:22;11054:31;;;;;;;;;;;;11074:10;11054:38;:48;-1:-1:-1;10776:342:22;-1:-1:-1;10689:3:22;;10662:467;;;;2026:1;;10104:1032;;;;;;:::o;8415:174::-;8479:12;:10;:12::i;:::-;2144:6;-1:-1:-1;;;;;2104:46:22;2113:7;:5;:7::i;:::-;-1:-1:-1;;;;;2104:23:22;;2136:4;2104:38;;;;;;;;;;;;;-1:-1:-1;;;;;2104:38:22;-1:-1:-1;;;;;2104:38:22;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2104:38:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2104:38:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2104:38:22;-1:-1:-1;;;;;2104:46:22;;2096:87;;;;;-1:-1:-1;;;;;2096:87:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2096:87:22;;;;;;;;;;;;;;;8512:6;;;;:15;8504:43;;;;;-1:-1:-1;;;;;8504:43:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8504:43:22;;;;;;;;;;;;;;;8558:23;8576:4;8558:17;:23::i;:::-;8415:174;;:::o;6828:313::-;6938:6;;6913:4;;6938:6;;:15;6930:43;;;;;-1:-1:-1;;;;;6930:43:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6930:43:22;;;;;;;;;;;;;;;6984:127;6993:12;:10;:12::i;:::-;7007:7;7016:94;7053:15;7016:94;;;;;;;;;;;;;;;;;:32;7026:12;:10;:12::i;:::-;7040:7;7016:9;:32::i;4693:558::-;4800:4;4762:12;:10;:12::i;:::-;-1:-1:-1;;;;;2287:19:22;;;;;;:11;:19;;;;;;4776:6;;2287:29;-1:-1:-1;2287:29:22;;:79;;;2360:6;-1:-1:-1;;;;;2320:46:22;2329:7;:5;:7::i;:::-;-1:-1:-1;;;;;2320:23:22;;2352:4;2320:38;;;;;;;;;;;;;-1:-1:-1;;;;;2320:38:22;-1:-1:-1;;;;;2320:38:22;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2320:38:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2320:38:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2320:38:22;-1:-1:-1;;;;;2320:46:22;;2287:79;:98;;;-1:-1:-1;2378:7:22;;-1:-1:-1;;;;;2370:15:22;;;2378:7;;2370:15;2287:98;2279:140;;;;;-1:-1:-1;;;;;2279:140:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2279:140:22;;;;;;;;;;;;;;;4825:6;;;;:15;4817:43;;;;;-1:-1:-1;;;;;4817:43:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4817:43:22;;;;;;;;;;;;;;;4918:5;:19;4924:12;:10;:12::i;:::-;-1:-1:-1;;;;;4918:19:22;-1:-1:-1;;;;;4918:19:22;;;;;;;;;;;;;4879:35;4907:6;4879:23;4889:12;:10;:12::i;:::-;4879:9;:23::i;:35::-;:58;;4871:92;;;;;-1:-1:-1;;;;;4871:92:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;4974:53;4995:12;:10;:12::i;:::-;5009:9;5020:6;4974:20;:53::i;:::-;5038:42;5048:12;:10;:12::i;:::-;5062:9;5073:6;5038:9;:42::i;:::-;-1:-1:-1;;;;;5094:22:22;;;;;;:11;:22;;;;;;5091:131;;5135:7;27:10:-1;;39:1;23:18;;45:23;;-1:-1;;;;;;;;;;;5135:23:22;;;-1:-1:-1;;;;;5135:23:22;;-1:-1:-1;;;;;;5135:23:22;;;;;;;;5196:14;;-1:-1:-1;5173:22:22;;;:11;5135:23;5173:22;;;;;:37;5239:4;5232:11;;4693:558;;;;;;:::o;1337:32::-;;;;:::o;753:79:33:-;818:6;;;;753:79;:::o;11144:715:22:-;11272:12;:10;:12::i;:::-;1860:7;;:23;;;-1:-1:-1;;;;;1860:23:22;;-1:-1:-1;;;;;1860:23:22;;;;;;;;;1840:12;;1860:7;;;;;:15;;:23;;;;;;;;;;;;;;;:7;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;1860:23:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1860:23:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1860:23:22;;-1:-1:-1;;;;;;1902:46:22;;1911:7;:5;:7::i;:::-;-1:-1:-1;;;;;1902:23:22;;1934:4;1902:38;;;;;;;;;;;;;-1:-1:-1;;;;;1902:38:22;-1:-1:-1;;;;;1902:38:22;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1902:38:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1902:38:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1902:38:22;-1:-1:-1;;;;;1902:46:22;;;:67;;;1952:4;-1:-1:-1;;;;;1952:17:22;1902:67;1894:121;;;;;-1:-1:-1;;;;;1894:121:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;11305:6;;;;:15;11297:43;;;;;-1:-1:-1;;;;;11297:43:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11297:43:22;;;;;;;;;;;;;;;11385:1;11359:25;11379:4;11359:19;:25::i;:::-;:27;11351:67;;;;;-1:-1:-1;;;;;11351:67:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;11471:6;11443:5;-1:-1:-1;;;;;11437:22:22;;11460:6;11437:30;;;;;;;;;;;;;-1:-1:-1;;;;;11437:30:22;-1:-1:-1;;;;;11437:30:22;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11437:30:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11437:30:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11437:30:22;:40;;11429:73;;;;;-1:-1:-1;;;;;11429:73:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;11553:1;11521:31;11539:4;11545:6;11521:17;:31::i;:::-;:33;11513:73;;;;;-1:-1:-1;;;;;11513:73:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11605:19:22;;;;;;:43;;-1:-1:-1;;;;;;11628:20:22;;;;11605:43;:55;;;;;11659:1;11652:6;:8;11605:55;11597:88;;;;;-1:-1:-1;;;;;11597:88:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;11696:49;;;-1:-1:-1;;;;;11696:49:22;;-1:-1:-1;;;;;11696:49:22;;;;;;;;;;;;;;;;;;;;;;:25;;;;;;:49;;;;;;;;;;;;;;;-1:-1:-1;11696:25:22;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;11696:49:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11696:49:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;11756:19:22;;;;-1:-1:-1;11756:13:22;11696:49;11756:19;;;;;;;-1:-1:-1;;;;;11756:27:22;;;;;;;;;;;:41;;-1:-1:-1;;;;;;11756:41:22;;;;;;;;-1:-1:-1;;11808:34:22;:43;11144:715::o;9001:227::-;9101:12;:10;:12::i;:::-;2144:6;-1:-1:-1;;;;;2104:46:22;2113:7;:5;:7::i;:::-;-1:-1:-1;;;;;2104:23:22;;2136:4;2104:38;;;;;;;;;;;;;-1:-1:-1;;;;;2104:38:22;-1:-1:-1;;;;;2104:38:22;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2104:38:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2104:38:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2104:38:22;-1:-1:-1;;;;;2104:46:22;;2096:87;;;;;-1:-1:-1;;;;;2096:87:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2096:87:22;;;;;;;;;;;;;;;9134:6;;;;:15;9126:43;;;;;-1:-1:-1;;;;;9126:43:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9126:43:22;;;;;;;;;;;;;;;9180:40;9198:4;9204:5;9211:8;9180:17;:40::i;:::-;9001:227;;;;:::o;741:142:3:-;1024:12:7;;;;;;;;:31;;;1040:15;:13;:15::i;:::-;1024:47;;;-1:-1:-1;1060:11:7;;;;1059:12;1024:47;1016:106;;;;-1:-1:-1;;;;;1016:106:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1129:19;1152:12;;;;;;1151:13;1170:80;;;;1198:12;:19;;-1:-1:-1;;;;1198:19:7;;;;;1225:18;1213:4;1225:18;;;1170:80;806:6:3;:15;;-1:-1:-1;;;;;;806:15:3;-1:-1:-1;;;;;806:15:3;;;;;;;;;;;836:40;;869:6;;;-1:-1:-1;;836:40:3;;-1:-1:-1;;836:40:3;1268:14:7;1264:55;;;1307:5;1292:20;;-1:-1:-1;;1292:20:7;;;741:142:3;;:::o;2023:729:18:-;2079:4;2139:1;2103:35;2121:4;2127:10;2103:17;:35::i;:::-;:37;2095:68;;;;;-1:-1:-1;;;;;2095:68:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;2177:13;;;;:7;:13;;;;;;;;2191:10;2177:25;;;;;;;;;;2174:570;;2288:20;;;;6:49:-1;;;2288:20:18;;;;;;;2278:31;;;;2255:17;;;:11;:17;;;;;;;2238:35;;2278:31;;2255:17;;2238:35;;;;2255:17;;2238:35;-1:-1:-1;;2238:35:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2238:35:18;;;2228:46;;;;;;:81;2225:468;;2332:6;2339:11;:17;2351:4;2339:17;;;;;;;;;;;2332:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2332:25:18;;;-1:-1:-1;;2332:25:18;;;;;;;;;;;;;:31;;:25;:31;2329:348;;;2390:11;;;;:5;:11;;;;;;;;2402:10;2390:23;;;;;;;;;;2387:214;;-1:-1:-1;2448:11:18;;;;:5;:11;;;;;;;;2460:10;2448:23;;;;;;;;;:32;;;;;-1:-1:-1;;2448:32:18;;;;;;;2507:13;;;:7;:13;;;;;:25;;;;;;;;:32;;;;;2448;2507;;;;;;2566:11;;2387:214;2329:348;;;-1:-1:-1;2672:5:18;2665:12;;2329:348;2174:570;;7597:157:22;7679:6;;7651:7;;7679:6;;:15;7671:43;;;;;-1:-1:-1;;;;;7671:43:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7671:43:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7732:14:22;;;;;:5;:14;;;;;;;7597:157::o;8597:210::-;8683:12;:10;:12::i;:::-;2144:6;-1:-1:-1;;;;;2104:46:22;2113:7;:5;:7::i;:::-;-1:-1:-1;;;;;2104:23:22;;2136:4;2104:38;;;;;;;;;;;;;-1:-1:-1;;;;;2104:38:22;-1:-1:-1;;;;;2104:38:22;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2104:38:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2104:38:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2104:38:22;-1:-1:-1;;;;;2104:46:22;;2096:87;;;;;-1:-1:-1;;;;;2096:87:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2096:87:22;;;;;;;;;;;;;;;8716:6;;;;:15;8708:43;;;;;-1:-1:-1;;;;;8708:43:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8708:43:22;;;;;;;;;;;;;;;8762:37;8782:7;8791;8762:19;:37::i;1707:260:18:-;1858:20;;;1779:4;6:49:-1;;;1858:20:18;;;;;;;1848:31;;;;1825:17;;;:11;:17;;;;;;1808:35;;1764:13;;1779:4;;1848:31;;1825:17;;1808:35;;;;;;1825:17;;1808:35;-1:-1:-1;;1808:35:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1808:35:18;;;1798:46;;;;;;:81;1795:165;;1903:17;;;;:11;:17;;;;;;;1922:25;;;;:6;;1903:17;;1922:25;;1903:17;;1922:25;-1:-1:-1;;1922:25:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1922:25:18;;;-1:-1:-1;;1922:25:18;;;;;;;;;;;;;1895:53;;;1922:25;;1895:53;;;;-1:-1:-1;;1895:53:18;;;;;;;;;;;;;;;;;;;;;;;1922:25;;;;;1895:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2307:132:4;-1:-1:-1;;;;;2405:18:4;;;2379:7;2405:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2307:132::o;8815:178:22:-;8881:12;:10;:12::i;:::-;2144:6;-1:-1:-1;;;;;2104:46:22;2113:7;:5;:7::i;:::-;-1:-1:-1;;;;;2104:23:22;;2136:4;2104:38;;;;;;;;;;;;;-1:-1:-1;;;;;2104:38:22;-1:-1:-1;;;;;2104:38:22;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2104:38:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2104:38:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2104:38:22;-1:-1:-1;;;;;2104:46:22;;2096:87;;;;;-1:-1:-1;;;;;2096:87:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2096:87:22;;;;;;;;;;;;;;;8914:6;;;;:15;8906:43;;;;;-1:-1:-1;;;;;8906:43:22;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8906:43:22;;;;;;;;;;;;;;;8960:25;8980:4;8960:19;:25::i;2032:107:3:-;1163:9;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:3;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1155:54:3;;;;;;;;;;;;;;;2104:28;2123:8;2104:18;:28::i;3981:364:22:-;1163:9:3;:7;:9::i;:::-;1155:54;;;;;-1:-1:-1;;;;;1155:54:3;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1155:54:3;;;;;;;;;;;;;;;4089:52:22;4110:10;4122;4134:6;4089:20;:52::i;:::-;4152:41;4162:10;4174;4186:6;4152:9;:41::i;:::-;-1:-1:-1;;;;;4207:23:22;;;;;;:11;:23;;;;;;4204:134;;-1:-1:-1;4249:7:22;27:10:-1;;39:1;23:18;;45:23;;-1:-1;;;;;;;;;;;4249:24:22;;;-1:-1:-1;;;;;;4249:24:22;-1:-1:-1;;;;;4249:24:22;;;;;;;;;4312:14;-1:-1:-1;4288:23:22;;;:11;4249:24;4288:23;;;;;:38;-1:-1:-1;3981:364:22:o;2259:112:23:-;2308:16;2344:19;2337:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2259:112;:::o;867:96:0:-;946:10;867:96;:::o;7427:332:4:-;-1:-1:-1;;;;;7520:19:4;;7512:68;;;;-1:-1:-1;;;;;7512:68:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7598:21:4;;7590:68;;;;-1:-1:-1;;;;;7590:68:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7669:18:4;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7720:32;;;;;;;;;;;;;;;;;7427:332;;;:::o;1274:134:2:-;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1351:50;1274:134;-1:-1:-1;;;1274:134:2:o;3176:689:23:-;3361:21;:19;:21::i;:::-;-1:-1:-1;;;;;3397:18:23;;;3393:465;;3475:28;3498:4;3475:22;:28::i;:::-;-1:-1:-1;;;;;3522:16:23;;;3518:206;;3588:26;3611:2;3588:22;:26::i;:::-;3518:206;;;3680:28;:26;:28::i;:::-;3393:465;;;3777:26;3800:2;3777:22;:26::i;:::-;3818:28;:26;:28::i;5054:349:19:-;5134:32;5150:4;5156:2;5160:5;5134:15;:32::i;:::-;5179:21;5203:40;:25;5222:5;5203:14;;:18;;:25;;;;:::i;:::-;:38;:40::i;:::-;-1:-1:-1;;;;;5279:22:19;;;;;;:16;:22;;;;;;5179:64;;-1:-1:-1;5279:42:19;;5179:64;5279:42;:26;:42;:::i;:::-;-1:-1:-1;;;;;5254:22:19;;;;;;;:16;:22;;;;;;:67;;;;5355:20;;;;;;;:40;;5380:14;5355:40;:24;:40;:::i;:::-;-1:-1:-1;;;;;5332:20:19;;;;;;;:16;:20;;;;;:63;;;;-1:-1:-1;;;5054:349:19:o;1732:187:2:-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;;;1837:29:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1837:29:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1888:5:2;;;1732:187::o;12380:303:22:-;12442:25;12470:26;12490:5;12470:19;:26::i;:::-;12531:10;;:45;;;-1:-1:-1;;;;;12531:45:22;;-1:-1:-1;;;;;12531:45:22;;;;;;;;;;;;;;;12442:54;;-1:-1:-1;12531:10:22;;;:19;;:45;;;;;;;;;;;;;;;:10;;:45;;;5:2:-1;;;;30:1;27;20:12;5:2;12531:45:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12531:45:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12531:45:22;12509:129;;;;-1:-1:-1;;;;;12509:129:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12649:26;:24;:26::i;834:176:2:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;;;938:46:2;;;;;;;;;;;;;;;;;;;;;;;;;;;482:88:33;522:6;:14;;-1:-1:-1;;522:14:33;;;552:10;;;;531:5;;552:10;482:88::o;13266:278:22:-;13371:17;;13421:10;;:35;;;-1:-1:-1;;;;;13421:35:22;;13450:4;13421:35;;;;;;13320:6;;13371:17;-1:-1:-1;;;;;13421:10:22;;:20;;:35;;;;;;;;;;;;;;:10;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;13421:35:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13421:35:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13421:35:22;13401:17;:55;;;13476:60;;13513:21;13476:60;:29;:60;:::i;:::-;13469:67;;;13266:278;:::o;199:127:31:-;255:7;288:1;283;:6;;275:15;;;;;;-1:-1:-1;316:1:31;199:127::o;2402:356:19:-;2487:1;2471:13;:11;:13::i;:::-;:17;2463:66;;;;-1:-1:-1;;;;;2463:66:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2546:9;;2542:209;;2589:95;2656:13;:11;:13::i;:::-;2626:27;:5;-1:-1:-1;;;2626:27:19;:9;:27;:::i;:::-;:43;;;;;2589:14;;;2626:43;;2589:95;:18;:95;:::i;:::-;2572:14;:112;2704:35;;;;;;;;2721:10;;2704:35;;;;;;;;;;2402:356;:::o;2159:459:2:-;2217:7;2458:6;2454:45;;-1:-1:-1;2487:1:2;2480:8;;2454:45;2521:5;;;2525:1;2521;:5;:1;2544:5;;;;;:10;2536:56;;;;-1:-1:-1;;;;;2536:56:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3873:1487:23;3983:4;;;5156:34;:9;5185:4;5156:34;:28;:34;:::i;:::-;5216:20;;5140:50;;-1:-1:-1;5207:29:23;;5203:150;;;-1:-1:-1;5261:5:23;;-1:-1:-1;5261:5:23;;-1:-1:-1;5253:17:23;;5203:150;5311:4;5317:9;:16;;5334:5;5317:23;;;;;;;;;;;;;;;;5303:38;;;;;3873:1487;;;;;;:::o;5677:232:19:-;5744:27;5756:7;5765:5;5744:11;:27::i;:::-;5812:89;5857:42;5858:25;5877:5;5858:14;;:18;;:25;;;;:::i;5857:42::-;-1:-1:-1;;;;;5812:25:19;;;;;;:16;:25;;;;;;;:89;:43;:89;:::i;:::-;-1:-1:-1;;;;;5784:25:19;;;;;;;:16;:25;;;;;:117;;;;-1:-1:-1;5677:232:19:o;289:83:33:-;327:6;:13;;-1:-1:-1;;327:13:33;336:4;327:13;;;356:8;;;;327:6;;356:8;289:83::o;1409:498:7:-;1820:4;1864:17;1895:7;1409:498;:::o;6192:232:19:-;6259:27;6271:7;6280:5;6259:11;:27::i;:::-;6327:89;6372:42;6373:25;6392:5;6373:14;;:18;;:25;;;;:::i;6372:42::-;-1:-1:-1;;;;;6327:25:19;;;;;;:16;:25;;;;;;;:89;:43;:89;:::i;2580:354:28:-;2642:7;2670:6;2662:32;;;;;-1:-1:-1;;;;;2662:32:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;2711:6;2707:220;;-1:-1:-1;2741:1:28;2734:8;;2707:220;875:4;2795:7;;;;:1;:7;:1;2825:13;;;;;:20;2817:45;;;;;-1:-1:-1;;;;;2817:45:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;2914:1;2902:9;:13;;;;;;2895:20;;;;;1730:208;1792:7;1830:5;;;1854:6;;;:26;;;1879:1;1874;1864:7;:11;;;;;;:16;1854:26;1846:51;;;;;-1:-1:-1;;;;;1846:51:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;875:4;1917:13;;;;-1:-1:-1;;;1730:208:28:o;937:341:23:-;1024:4;1006:15;:22;998:55;;;;;-1:-1:-1;;;;;998:55:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;1065:10;1081:33;1109:4;1081:27;:33::i;:::-;1064:50;;;1134:5;1133:6;1125:48;;;;;-1:-1:-1;;;;;1125:48:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;1184:19;27:10:-1;;39:1;23:18;;45:23;;-1:-1;1184:30:23;;;;;;;;1230:40;;;;;;1184:30;1230:40;;;;;;;1255:4;;1230:40;;;;;;;;;937:341;;:::o;1206:452:18:-;1301:35;1339:18;:16;:18::i;:::-;1301:56;-1:-1:-1;1372:9:18;1368:283;1387:18;:25;1385:1;:27;1368:283;;;1459:4;1436:18;1455:1;1436:21;;;;;;;;;;;;;;:27;1433:207;;;1483:17;;;;:11;:17;;;;;;;;:28;;;;;;;;:::i;:::-;;1549:4;1530:6;1537:8;1530:16;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1530:16:18;;;;;-1:-1:-1;1530:16:18;;;;;;;;;;;:23;;-1:-1:-1;;1530:23:18;;;;;;;;;;;1577:47;;;;;;;;;;;;;-1:-1:-1;;1577:47:18;;;;;;;;;;;;;;;;;;1596:4;;1577:47;;;;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1577:47:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1433:207;1414:3;;1368:283;;;;1206:452;;;;:::o;1286:612:23:-;1409:7;1391:15;:25;1383:59;;;;;-1:-1:-1;;;;;1383:59:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;1479:7;1461:15;:25;1453:58;;;;;-1:-1:-1;;;;;1453:58:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;1525:13;1544:36;1572:7;1544:27;:36::i;:::-;1524:56;;;1600:8;1599:9;1591:51;;;;;-1:-1:-1;;;;;1591:51:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:13;1671;1688:36;1716:7;1688:27;:36::i;:::-;1655:69;;;;1743:8;1735:39;;;;;-1:-1:-1;;;;;1735:39:23;;;;;;;;;;;;-1:-1:-1;;;;;1735:39:23;;;;;;;;;;;;;;;1816:7;1787:19;1807:5;1787:26;;;;;;;;;;;;;;;;;;:36;;;;1841:49;;;;;;;;;;;;;;1866:4;;1841:49;;;;;;;;;1286:612;;;;;:::o;1906:345::-;1995:4;1977:15;:22;1969:56;;;;;-1:-1:-1;;;;;1969:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;2037:10;2049:13;2066:33;2094:4;2066:27;:33::i;:::-;2036:63;;;;2118:5;2110:36;;;;;-1:-1:-1;;;;;2110:36:23;;;;;;;;;;;;-1:-1:-1;;;;;2110:36:23;;;;;;;;;;;;;;;2159:27;2180:5;2159:20;:27::i;:::-;2204:39;;;;;;;;2231:4;;2204:39;;;;;;;;;;1906:345;;;:::o;2240:225:3:-;-1:-1:-1;;;;;2313:22:3;;2305:73;;;;-1:-1:-1;;;;;2305:73:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2414:6;;2393:38;;-1:-1:-1;;;;;2393:38:3;;;;2414:6;;2393:38;;2414:6;;2393:38;2441:6;:17;;-1:-1:-1;;;;;;2441:17:3;-1:-1:-1;;;;;2441:17:3;;;;;;;;;;2240:225::o;5970:222:23:-;6021:12;6036:38;:36;:38::i;:::-;6021:53;-1:-1:-1;6089:8:23;;6085:100;;6114:16;:23;;;6152:21;:19;:21::i;5368:146::-;-1:-1:-1;;;;;5452:33:23;;;;;;:24;:33;;;;;5436:70;;5487:18;5477:7;5487:9;:18::i;:::-;5436:15;:70::i;5522:118::-;5579:53;5595:21;5618:13;:11;:13::i;5305:464:4:-;-1:-1:-1;;;;;5402:20:4;;5394:70;;;;-1:-1:-1;;;;;5394:70:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5482:23:4;;5474:71;;;;-1:-1:-1;;;;;5474:71:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5576;5598:6;5576:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5576:17:4;;;;;;:9;:17;;;;;;;:71;;:21;:71;:::i;:::-;-1:-1:-1;;;;;5556:17:4;;;;;;;:9;:17;;;;;;:91;;;;5680:20;;;;;;;:32;;5705:6;5680:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;5657:20:4;;;;;;;:9;:20;;;;;;;;;:55;;;;5727:35;;;;;;;5657:20;;5727:35;;;;;;;;;;;;;5305:464;;;:::o;334:148:31:-;390:6;427:1;448:6;;;;440:15;;;;;2530:215:32;2586:6;2616:5;;;2641:6;;;;;;:16;;;2656:1;2651;:6;;2641:16;2640:38;;;;2667:1;2663;:5;:14;;;;;2676:1;2672;:5;2663:14;2632:84;;;;-1:-1:-1;;;;;2632:84:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2067:218;2123:6;2153:5;;;2178:6;;;;;;:16;;;2193:1;2188;:6;;2178:16;2177:38;;;;2204:1;2200;:5;:14;;;;;2213:1;2209;:5;2200:14;2169:87;;;;-1:-1:-1;;;;;2169:87:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2960:349:19;3023:7;3043:29;3075:27;3095:6;3075:19;:27::i;:::-;-1:-1:-1;;;;;3148:22:19;;;;;;:14;:22;;;;;;3043:59;;-1:-1:-1;3148:49:19;;3043:59;3148:49;:26;:49;:::i;:::-;-1:-1:-1;;;;;3123:22:19;;;;;;:14;:22;;;;;;;;;:74;;;;3215:45;;;;;;;3123:22;;3215:45;;;;;;;;;3280:21;2960:349;-1:-1:-1;;2960:349:19:o;549:892:6:-;661:12;;638:7;;657:56;;-1:-1:-1;701:1:6;694:8;;657:56;763:12;;723:11;;786:414;799:4;793:3;:10;786:414;;;819:11;833:23;846:3;851:4;833:12;:23::i;:::-;819:37;;1086:7;1073:5;1079:3;1073:10;;;;;;;;;;;;;;;;:20;1069:121;;;1120:3;1113:10;;1069:121;;;1168:3;1174:1;1168:7;1162:13;;1069:121;786:414;;;;1323:1;1317:3;:7;:36;;;;;1346:7;1328:5;1340:1;1334:3;:7;1328:14;;;;;;;;;;;;;;;;:25;1317:36;1313:122;;;-1:-1:-1;;;1376:7:6;;-1:-1:-1;1369:14:6;;1313:122;-1:-1:-1;1421:3:6;-1:-1:-1;1414:10:6;;6039:302:4;-1:-1:-1;;;;;6114:21:4;;6106:65;;;;;-1:-1:-1;;;;;6106:65:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;6197:12;;:24;;6214:6;6197:24;:16;:24;:::i;:::-;6182:12;:39;-1:-1:-1;;;;;6252:18:4;;;;;;:9;:18;;;;;;:30;;6275:6;6252:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;6231:18:4;;;;;;:9;:18;;;;;;;;:51;;;;6297:37;;;;;;;6231:18;;;;6297:37;;;;;;;;;;6039:302;;:::o;6660:342::-;-1:-1:-1;;;;;6735:21:4;;6727:67;;;;-1:-1:-1;;;;;6727:67:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6826:68;6849:6;6826:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6826:18:4;;;;;;:9;:18;;;;;;;:68;;:22;:68;:::i;:::-;-1:-1:-1;;;;;6805:18:4;;;;;;:9;:18;;;;;:89;6919:12;;:24;;6936:6;6919:24;:16;:24;:::i;:::-;6904:12;:39;6958:37;;;;;;;;6984:1;;-1:-1:-1;;;;;6958:37:4;;;;;;;;;;;;6660:342;;:::o;6563:336:23:-;6663:4;;;6694:170;6718:19;:26;6714:30;;6694:170;;;6796:4;6770:19;6790:1;6770:22;;;;;;;;;;;;;;;;:30;6766:87;;;6829:4;;-1:-1:-1;6835:1:23;-1:-1:-1;6821:16:23;;6766:87;6746:3;;6694:170;;;-1:-1:-1;6882:5:23;;;;-1:-1:-1;6563:336:23;-1:-1:-1;;6563:336:23:o;7755:212::-;7848:19;7882:26;;-1:-1:-1;;7882:30:23;;;7848:75;;;;;;;;;;;;;;7819:19;7839:5;7819:26;;;;;;;;;;;;;;;;;:104;7934:19;:25;;;;;;;;;;;;;;;;;;;;;;;;7755:212;:::o;6907:534::-;7033:19;:26;7004:7;;7029:45;;-1:-1:-1;7073:1:23;7066:8;;7029:45;7085:18;;7118:288;7142:19;:26;7138:30;;7118:288;;;7238:15;7212:19;7232:1;7212:22;;;;;;;;;;;;;;;;:41;;:97;;;;;7299:10;7274:19;7294:1;7274:22;;;;;;;;;;;;;;;;:35;7212:97;7190:205;;;7357:19;7377:1;7357:22;;;;;;;;;;;;;;;;7344:35;;7190:205;7170:3;;7118:288;;;-1:-1:-1;7423:10:23;-1:-1:-1;6907:534:23;:::o;7449:298::-;7499:9;7523:217;7534:19;:26;7530:30;;7523:217;;;7607:15;7581:19;7601:1;7581:22;;;;;;;;;;;;;;;;:41;7577:152;;7643:23;7664:1;7643:20;:23::i;:::-;7577:152;;;7712:1;7707:6;7577:152;7523:217;;5648:314;5757:15;5775:21;:19;:21::i;:::-;5757:39;-1:-1:-1;5757:39:23;5811:28;5825:9;5811:13;:28::i;:::-;:38;5807:148;;;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;5866:27:23;;;;;;;;;;;;;;5908:16;;;27:10:-1;;23:18;;;45:23;;5908:35:23;;;;;;;;5648:314::o;575:190:1:-;637:7;756:1;;747;:5;743:1;739;:5;:13;738:19;;;;;;732:1;728;:5;722:1;718;:5;717:17;:41;;575:190;-1:-1:-1;;;575:190:1:o;6200:105:23:-;6281:16;;6200:105;:::o;6313:242::-;6437:10;;6408:7;;6433:115;;-1:-1:-1;6476:1:23;6469:8;;6433:115;6521:10;;6517:3;;-1:-1:-1;;6521:14:23;;;6517:19;;;;;;;;;;;;;;6510:26;;;;406:13325:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;406:13325:22;;;;-1:-1:-1;406:13325:22;;;;;;;;;;;;;;",
    "source": "// Verified securities manager that updates holdings of securities by users\r\n// (c) Kallol Borah, 2021\r\n\r\npragma solidity 0.5.7;\r\n\r\nimport \"./CorporateActions.sol\";\r\nimport \"./utilities/Pausable.sol\";\r\nimport \"./interfaces/IFactory.sol\";\r\nimport \"./interfaces/ISecurity.sol\";\r\nimport \"./interfaces/VerifiedClient.sol\";\r\nimport \"@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol\";\r\n\r\ncontract Security is ISecurity, Ownable, Pausable, CorporateActions {\r\n\r\n    //using Math for uint256;\r\n\r\n    string private _name;\r\n    string private _symbol;\r\n\r\n    VerifiedClient private _client;\r\n\r\n    //issuer of this security token or the assigned depositary participant\r\n    address private _issuer;\r\n\r\n    //this security token's holders\r\n    address[] private holders;\r\n\r\n    //mapping holders to index\r\n    mapping(address => uint256) private holderIndex;\r\n\r\n    //mapping security token holders to amounts frozen in account (0 means all frozen)\r\n    mapping(address => uint256) private froze;\r\n\r\n    //mapping whitelisted wallets to any spend cap on them (0 means no cap)\r\n    mapping(address => uint256) private whitelisted;\r\n\r\n    // token in which the funds can be sent to the FundsDistributionToken\r\n    IERC20 public fundsToken;\r\n\r\n    // balance of fundsToken that the FundsDistributionToken currently holds\r\n    uint256 public fundsTokenBalance;\r\n\r\n    /**\r\n     * @dev Emitted when an address is frozen.\r\n     */\r\n    event Freeze(address indexed enforcer, address indexed owner);\r\n\r\n    /**\r\n     * @dev Emitted when an address is unfrozen.\r\n     */\r\n    event Unfreeze(address indexed enforcer, address indexed owner);\r\n\r\n    event Burn(address indexed owner, uint256 amount);\r\n\r\n    event Mint(address indexed beneficiary, uint256 amount);\r\n\r\n    modifier onlyIssueManagerOrCustodian(address sender){\r\n        (bytes32 role, , ) = _client.getRole(sender);\r\n        require(IFactory(owner()).getDP(address(this))==sender || role==\"Custodian\", \r\n                \"Not issuer or custodian\");\r\n        _;\r\n    }\r\n\r\n    modifier onlyIssueManager (address sender){\r\n        require(IFactory(owner()).getDP(address(this))==sender, \"Only issuer managers allowed\");\r\n        _;\r\n    }\r\n\r\n    modifier onlyWhiteListed (address sender, uint256 amount){\r\n        require(whitelisted[sender] >= amount || IFactory(owner()).getDP(address(this))==sender || sender==_issuer, \"Sender wallet not whitelisted\");\r\n        _;\r\n    }\r\n\r\n    /**\r\n     * @dev Sets the values for {name} and {symbol}.\r\n     *\r\n     * The default value of {decimals} is 18. To select a different value for\r\n     * {decimals} you should overload it.\r\n     *\r\n     * All two of these values are immutable: they can only be set once during\r\n     * construction.\r\n     */\r\n    function initialize(bytes32 name_, bytes32 symbol_, address _owner, address issuer, address client, address currency) public initializer {        \r\n        Ownable.initialize(_owner);\r\n        _name = string(abi.encodePacked(name_));\r\n        _symbol = string(abi.encodePacked(symbol_));\r\n        _issuer = issuer;\r\n        _client = VerifiedClient(client);\r\n        fundsToken = IERC20(currency);\r\n    }\r\n\r\n    /**\r\n     * @dev Returns the name of the token.\r\n     */\r\n    function name() public view returns (string memory) {\r\n        return _name;\r\n    }\r\n\r\n    /**\r\n     * @dev Returns the symbol of the token, usually a shorter version of the\r\n     * name.\r\n     */\r\n    function symbol() public view returns (string memory) {\r\n        return _symbol;\r\n    }\r\n\r\n    /**\r\n     * Securities are indivisible, so returning decimal 0\r\n     */\r\n    function decimals() public view returns (uint8) {\r\n        return 18;\r\n    }\r\n\r\n    function mintToken(address issuer, uint256 amount) external onlyOwner{\r\n        _beforeTokenTransfer(address(0x0), issuer, amount);\r\n        _mint(issuer, amount);\r\n        holders.push(issuer);\r\n        holderIndex[issuer]=holders.length;\r\n        emit Mint(issuer, amount);\r\n    }\r\n\r\n    function transferToken(address transferor, address transferee, uint256 amount) external onlyOwner{\r\n        _beforeTokenTransfer(transferor, transferee, amount);\r\n        _transfer(transferor, transferee, amount);\r\n        if(holderIndex[transferee]==0){\r\n            holders.push(transferee);\r\n            holderIndex[transferee]=holders.length;\r\n        }\r\n    }\r\n\r\n    function whiteList(address spender, uint256 amount) onlyWhiteListed(_msgSender(), amount) external {\r\n        require(paused == false, \"Contract paused\");\r\n        whitelisted[spender] = amount;\r\n    }\r\n\r\n    //can be used by primary and secondary issue manager contracts. These whitelisted contracts can also be frozen by the issuer.\r\n    function transfer(address recipient, uint256 amount) onlyWhiteListed(_msgSender(), amount) public returns (bool) {\r\n        require(paused == false, \"Contract paused\");\r\n        require(balanceOf(_msgSender()).sub(amount) >= froze[_msgSender()], \"Funds transfer frozen\");\r\n        _beforeTokenTransfer(_msgSender(), recipient, amount);\r\n        _transfer(_msgSender(), recipient, amount);\r\n        if(holderIndex[recipient]==0){\r\n            holders.push(recipient);\r\n            holderIndex[recipient]=holders.length;\r\n        }\r\n        return true;\r\n    }\r\n\r\n    //called by user wallets to approve vaults to transfer tokens from them to the vault. \r\n    //Vaults need to be whitelisted by primary and secondary issue managers.\r\n    function approve(address spender, uint256 amount) onlyWhiteListed(spender, amount) public returns (bool) {\r\n        require(paused == false, \"Contract paused\");\r\n        _approve(_msgSender(), spender, amount);\r\n        return true;\r\n    }\r\n\r\n    //can be used by primary and secondary issue manager contracts, as well as vaults to swap tokens from user wallets that have approved the vault.\r\n    function transferFrom(address sender, address recipient, uint256 amount) public onlyWhiteListed(_msgSender(), amount) returns (bool) {\r\n        require(paused == false, \"Contract paused\");\r\n        require(balanceOf(sender).sub(amount) >= froze[sender], \"Funds transfer frozen\");\r\n        _beforeTokenTransfer(sender, recipient, amount);\r\n        _transfer(sender, recipient, amount);\r\n        if(sender != _msgSender())\r\n            _approve(sender, _msgSender(), allowance(sender, _msgSender()).sub(amount, \"ERC20: transfer amount exceeds allowance\"));\r\n        if(holderIndex[recipient]==0){\r\n            holders.push(recipient);\r\n            holderIndex[recipient]=holders.length;\r\n        }\r\n        return true;\r\n    }\r\n\r\n    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {\r\n        require(paused == false, \"Contract paused\");\r\n        _approve(_msgSender(), spender, allowance(_msgSender(), spender).add(addedValue));\r\n        return true;\r\n    }\r\n\r\n    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {\r\n        require(paused == false, \"Contract paused\");\r\n        _approve(_msgSender(), spender, allowance(_msgSender(), spender).sub(subtractedValue, \"ERC20: decreased allowance below zero\"));\r\n        return true;\r\n    }\r\n\r\n    function freeze(address holder, uint256 amount) public onlyIssueManager(_msgSender()){\r\n        require(paused == false, \"Contract paused\");\r\n        froze[holder] = amount;\r\n        emit Freeze(_msgSender(), holder);\r\n    }\r\n\r\n    function unfreeze(address holder) public onlyIssueManager(_msgSender()) {\r\n        require(paused == false, \"Contract paused\");\r\n        froze[holder] = 0;\r\n        emit Unfreeze(_msgSender(), holder);\r\n    }\r\n\r\n    function frozen(address account) public view returns (uint256) {\r\n        require(paused == false, \"Contract paused\");\r\n        return froze[account];\r\n    }\r\n\r\n    function burn(address holder, uint256 amount) public onlyIssueManager(_msgSender()) {\r\n        require(paused == false, \"Contract paused\");\r\n        _beforeTokenTransfer(holder, address(0x0), amount);\r\n        _burn(holder, amount);       \r\n        emit Burn(holder, amount); \r\n    }\r\n\r\n    function burnAll() public onlyIssueManager(_msgSender()) {\r\n        require(paused == false, \"Contract paused\");\r\n        uint length = holders.length;\r\n        for(uint256 i=0; i<length; i++){\r\n            _beforeTokenTransfer(holders[i], address(0x0), balanceOf(holders[i]));\r\n            _burn(holders[i], balanceOf(holders[i]));\r\n        }    \r\n    }\r\n\r\n    function scheduleSnapshot(uint256 time) public onlyIssueManager(_msgSender()) {\r\n        require(paused == false, \"Contract paused\");\r\n        _scheduleSnapshot(time);\r\n    }\r\n\r\n    function rescheduleSnapshot(uint256 oldTime, uint256 newTime) public onlyIssueManager(_msgSender()) {\r\n        require(paused == false, \"Contract paused\");\r\n        _rescheduleSnapshot(oldTime, newTime);\r\n    }\r\n\r\n    function unscheduleSnapshot(uint256 time) public onlyIssueManager(_msgSender()) {\r\n        require(paused == false, \"Contract paused\");\r\n        _unscheduleSnapshot(time);\r\n    }\r\n\r\n    function createResolution(uint256 time, bool votes, string memory ipfsLink) public onlyIssueManager(_msgSender()) {\r\n        require(paused == false, \"Contract paused\");\r\n        _createResolution(time, votes, ipfsLink);\r\n    }\r\n    \r\n    function countVotes(uint256 time) public view /*onlyIssueManager(_msgSender())*/ returns(uint256 total, uint256 yes){\r\n        require(paused == false, \"Contract paused\");\r\n        uint256 voteCount = 0;\r\n        uint256 totalCount = 0;\r\n        if(keccak256(abi.encodePacked(resolutions[time])) != keccak256(abi.encodePacked(\"\"))){\r\n            if(voting[resolutions[time]]==true){      \r\n                uint length = holders.length;          \r\n                for(uint256 i=0; i<length; i++){\r\n                    if(snapshotBalanceOf(time, holders[i])>0){\r\n                        totalCount = totalCount + 1;\r\n                        if(votes[time][holders[i]]==true)\r\n                            voteCount = voteCount + 1;\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        return (totalCount, voteCount);       \r\n    } \r\n    \r\n    function payoutProrata(uint256 time, address wallet, address token, uint256 amount) public onlyIssueManagerOrCustodian(_msgSender()) {\r\n        require(paused == false, \"Contract paused\");\r\n        require(snapshotTotalSupply(time)>0, \"No scheduled snapshot found\");\r\n        require(ERC20(token).balanceOf(wallet) >= amount, \"Insufficient balance\");\r\n        require(token!=address(0x0) && wallet!=address(0x0) && amount>0, \"Invalid distribution\");\r\n        uint256 totalHoldings = snapshotTotalSupply(time);\r\n        uint length = holders.length;\r\n        for(uint256 i=0; i<length; i++){\r\n            uint256 holding = snapshotBalanceOf(time, holders[i]);\r\n            if(holding > 0){\r\n                uint256 prorata = FixedPoint.mulDown(FixedPoint.divDown(holding, totalHoldings), amount);\r\n                ERC20(token).transferFrom(wallet, holders[i], prorata);\r\n                distributions[time][holders[i]].token = token;\r\n                distributions[time][holders[i]].amount = prorata;\r\n            }\r\n        }\r\n    }\r\n\r\n    function payout(uint256 time, address holder, address wallet, address token, uint256 amount) public onlyIssueManagerOrCustodian(_msgSender()) {\r\n        require(paused == false, \"Contract paused\");\r\n        require(snapshotTotalSupply(time)>0, \"No scheduled snapshot found\");\r\n        require(ERC20(token).balanceOf(wallet) >= amount, \"Insufficient balance\");\r\n        require(snapshotBalanceOf(time, holder)>0, \"Not a security token holder\");\r\n        require(token!=address(0x0) && wallet!=address(0x0) && amount>0, \"Invalid distribution\");\r\n        ERC20(token).transferFrom(wallet, holder, amount);\r\n        distributions[time][holder].token = token;\r\n        distributions[time][holder].amount = amount;\r\n    }\r\n\r\n    /**\r\n     * @notice Withdraws all available funds for a token holder\r\n     */\r\n    function withdrawFunds() external {\r\n        _withdrawFundsFor(msg.sender);\r\n    }\r\n\r\n    /**\r\n     * @notice Withdraws funds for a set of token holders\r\n     */\r\n    function pushFunds(address[] calldata owners) external {\r\n        for (uint256 i = 0; i < owners.length; i++) {\r\n            _withdrawFundsFor(owners[i]);\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @notice Withdraws all available funds for a token holder\r\n     */\r\n    function _withdrawFundsFor(address owner) internal {\r\n        uint256 withdrawableFunds = _prepareWithdrawFor(owner);\r\n\r\n        require(\r\n            fundsToken.transfer(owner, withdrawableFunds),\r\n            \"FDT.withdrawFunds: TRANSFER_FAILED\"\r\n        );\r\n        _updateFundsTokenBalance();\r\n    }\r\n\r\n    /**\r\n     * @notice Register a payment of funds in tokens. May be called directly after a deposit is made.\r\n     */\r\n    function updateFundsReceived() external {\r\n        int256 newFunds = _updateFundsTokenBalance();\r\n\r\n        if (newFunds > 0) {\r\n            _distributeFunds(newFunds.toUint256Safe());\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @dev Updates the current funds token balance\r\n     * and returns the difference of new and previous funds token balances\r\n     * @return A int256 representing the difference of the new and previous funds token balance\r\n     */\r\n    function _updateFundsTokenBalance() internal returns (int256) {\r\n        uint256 prevFundsTokenBalance = fundsTokenBalance;\r\n\r\n        fundsTokenBalance = fundsToken.balanceOf(address(this));\r\n\r\n        return int256(fundsTokenBalance).sub(int256(prevFundsTokenBalance));\r\n    }\r\n\r\n    function pause() public onlyIssueManager(_msgSender()){\r\n        _pause();\r\n    }\r\n\r\n    function unpause() public onlyIssueManager(_msgSender()){\r\n        _unpause();\r\n    }\r\n\r\n}\r\n\r\n",
    "sourcePath": "D:\\Code\\verified-securities\\contracts\\Security.sol",
    "ast": {
        "absolutePath": "project:/contracts/Security.sol",
        "exportedSymbols": {
            "Security": [
                5917
            ]
        },
        "id": 5918,
        "nodeType": "SourceUnit",
        "nodes": [
            {
                "id": 4563,
                "literals": [
                    "solidity",
                    "0.5",
                    ".7"
                ],
                "nodeType": "PragmaDirective",
                "src": "106:22:22"
            },
            {
                "absolutePath": "project:/contracts/CorporateActions.sol",
                "file": "./CorporateActions.sol",
                "id": 4564,
                "nodeType": "ImportDirective",
                "scope": 5918,
                "sourceUnit": 3571,
                "src": "132:32:22",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/utilities/Pausable.sol",
                "file": "./utilities/Pausable.sol",
                "id": 4565,
                "nodeType": "ImportDirective",
                "scope": 5918,
                "sourceUnit": 9114,
                "src": "166:34:22",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/IFactory.sol",
                "file": "./interfaces/IFactory.sol",
                "id": 4566,
                "nodeType": "ImportDirective",
                "scope": 5918,
                "sourceUnit": 6629,
                "src": "202:35:22",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/ISecurity.sol",
                "file": "./interfaces/ISecurity.sol",
                "id": 4567,
                "nodeType": "ImportDirective",
                "scope": 5918,
                "sourceUnit": 6692,
                "src": "239:36:22",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/VerifiedClient.sol",
                "file": "./interfaces/VerifiedClient.sol",
                "id": 4568,
                "nodeType": "ImportDirective",
                "scope": 5918,
                "sourceUnit": 6874,
                "src": "277:41:22",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol",
                "file": "@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol",
                "id": 4569,
                "nodeType": "ImportDirective",
                "scope": 5918,
                "sourceUnit": 410,
                "src": "320:82:22",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "baseContracts": [
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 4570,
                            "name": "ISecurity",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 6691,
                            "src": "427:9:22",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ISecurity_$6691",
                                "typeString": "contract ISecurity"
                            }
                        },
                        "id": 4571,
                        "nodeType": "InheritanceSpecifier",
                        "src": "427:9:22"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 4572,
                            "name": "Ownable",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 409,
                            "src": "438:7:22",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Ownable_$409",
                                "typeString": "contract Ownable"
                            }
                        },
                        "id": 4573,
                        "nodeType": "InheritanceSpecifier",
                        "src": "438:7:22"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 4574,
                            "name": "Pausable",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 9113,
                            "src": "447:8:22",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Pausable_$9113",
                                "typeString": "contract Pausable"
                            }
                        },
                        "id": 4575,
                        "nodeType": "InheritanceSpecifier",
                        "src": "447:8:22"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 4576,
                            "name": "CorporateActions",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 3570,
                            "src": "457:16:22",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_CorporateActions_$3570",
                                "typeString": "contract CorporateActions"
                            }
                        },
                        "id": 4577,
                        "nodeType": "InheritanceSpecifier",
                        "src": "457:16:22"
                    }
                ],
                "contractDependencies": [
                    29,
                    409,
                    821,
                    890,
                    1042,
                    3570,
                    3849,
                    6506,
                    6653,
                    6691,
                    9113
                ],
                "contractKind": "contract",
                "documentation": null,
                "fullyImplemented": true,
                "id": 5917,
                "linearizedBaseContracts": [
                    5917,
                    3570,
                    6506,
                    3849,
                    821,
                    890,
                    9113,
                    409,
                    29,
                    1042,
                    6653,
                    6691
                ],
                "name": "Security",
                "nodeType": "ContractDefinition",
                "nodes": [
                    {
                        "constant": false,
                        "id": 4579,
                        "name": "_name",
                        "nodeType": "VariableDeclaration",
                        "scope": 5917,
                        "src": "516:20:22",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string"
                        },
                        "typeName": {
                            "id": 4578,
                            "name": "string",
                            "nodeType": "ElementaryTypeName",
                            "src": "516:6:22",
                            "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 4581,
                        "name": "_symbol",
                        "nodeType": "VariableDeclaration",
                        "scope": 5917,
                        "src": "543:22:22",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string"
                        },
                        "typeName": {
                            "id": 4580,
                            "name": "string",
                            "nodeType": "ElementaryTypeName",
                            "src": "543:6:22",
                            "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 4583,
                        "name": "_client",
                        "nodeType": "VariableDeclaration",
                        "scope": 5917,
                        "src": "574:30:22",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_contract$_VerifiedClient_$6873",
                            "typeString": "contract VerifiedClient"
                        },
                        "typeName": {
                            "contractScope": null,
                            "id": 4582,
                            "name": "VerifiedClient",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 6873,
                            "src": "574:14:22",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_VerifiedClient_$6873",
                                "typeString": "contract VerifiedClient"
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 4585,
                        "name": "_issuer",
                        "nodeType": "VariableDeclaration",
                        "scope": 5917,
                        "src": "689:23:22",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                        },
                        "typeName": {
                            "id": 4584,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "689:7:22",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 4588,
                        "name": "holders",
                        "nodeType": "VariableDeclaration",
                        "scope": 5917,
                        "src": "758:25:22",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                            "typeString": "address[]"
                        },
                        "typeName": {
                            "baseType": {
                                "id": 4586,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "758:7:22",
                                "stateMutability": "nonpayable",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "id": 4587,
                            "length": null,
                            "nodeType": "ArrayTypeName",
                            "src": "758:9:22",
                            "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 4592,
                        "name": "holderIndex",
                        "nodeType": "VariableDeclaration",
                        "scope": 5917,
                        "src": "824:47:22",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                            "typeString": "mapping(address => uint256)"
                        },
                        "typeName": {
                            "id": 4591,
                            "keyType": {
                                "id": 4589,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "832:7:22",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "824:27:22",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                            },
                            "valueType": {
                                "id": 4590,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "843:7:22",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                }
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 4596,
                        "name": "froze",
                        "nodeType": "VariableDeclaration",
                        "scope": 5917,
                        "src": "968:41:22",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                            "typeString": "mapping(address => uint256)"
                        },
                        "typeName": {
                            "id": 4595,
                            "keyType": {
                                "id": 4593,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "976:7:22",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "968:27:22",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                            },
                            "valueType": {
                                "id": 4594,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "987:7:22",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                }
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 4600,
                        "name": "whitelisted",
                        "nodeType": "VariableDeclaration",
                        "scope": 5917,
                        "src": "1095:47:22",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                            "typeString": "mapping(address => uint256)"
                        },
                        "typeName": {
                            "id": 4599,
                            "keyType": {
                                "id": 4597,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1103:7:22",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1095:27:22",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                            },
                            "valueType": {
                                "id": 4598,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "1114:7:22",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                }
                            }
                        },
                        "value": null,
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 4602,
                        "name": "fundsToken",
                        "nodeType": "VariableDeclaration",
                        "scope": 5917,
                        "src": "1226:24:22",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IERC20_$890",
                            "typeString": "contract IERC20"
                        },
                        "typeName": {
                            "contractScope": null,
                            "id": 4601,
                            "name": "IERC20",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 890,
                            "src": "1226:6:22",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IERC20_$890",
                                "typeString": "contract IERC20"
                            }
                        },
                        "value": null,
                        "visibility": "public"
                    },
                    {
                        "constant": false,
                        "id": 4604,
                        "name": "fundsTokenBalance",
                        "nodeType": "VariableDeclaration",
                        "scope": 5917,
                        "src": "1337:32:22",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                        },
                        "typeName": {
                            "id": 4603,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1337:7:22",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        },
                        "value": null,
                        "visibility": "public"
                    },
                    {
                        "anonymous": false,
                        "documentation": "@dev Emitted when an address is frozen.\r",
                        "id": 4610,
                        "name": "Freeze",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 4609,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4606,
                                    "indexed": true,
                                    "name": "enforcer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4610,
                                    "src": "1457:24:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4605,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1457:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4608,
                                    "indexed": true,
                                    "name": "owner",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4610,
                                    "src": "1483:21:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4607,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1483:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1456:49:22"
                        },
                        "src": "1444:62:22"
                    },
                    {
                        "anonymous": false,
                        "documentation": "@dev Emitted when an address is unfrozen.\r",
                        "id": 4616,
                        "name": "Unfreeze",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 4615,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4612,
                                    "indexed": true,
                                    "name": "enforcer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4616,
                                    "src": "1597:24:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4611,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1597:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4614,
                                    "indexed": true,
                                    "name": "owner",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4616,
                                    "src": "1623:21:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4613,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1623:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1596:49:22"
                        },
                        "src": "1582:64:22"
                    },
                    {
                        "anonymous": false,
                        "documentation": null,
                        "id": 4622,
                        "name": "Burn",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 4621,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4618,
                                    "indexed": true,
                                    "name": "owner",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4622,
                                    "src": "1665:21:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4617,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1665:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4620,
                                    "indexed": false,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4622,
                                    "src": "1688:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 4619,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1688:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1664:39:22"
                        },
                        "src": "1654:50:22"
                    },
                    {
                        "anonymous": false,
                        "documentation": null,
                        "id": 4628,
                        "name": "Mint",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 4627,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4624,
                                    "indexed": true,
                                    "name": "beneficiary",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4628,
                                    "src": "1723:27:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4623,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1723:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4626,
                                    "indexed": false,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4628,
                                    "src": "1752:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 4625,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1752:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1722:45:22"
                        },
                        "src": "1712:56:22"
                    },
                    {
                        "body": {
                            "id": 4659,
                            "nodeType": "Block",
                            "src": "1828:207:22",
                            "statements": [
                                {
                                    "assignments": [
                                        4633,
                                        null,
                                        null
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 4633,
                                            "name": "role",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 4659,
                                            "src": "1840:12:22",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "typeName": {
                                                "id": 4632,
                                                "name": "bytes32",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "1840:7:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        null,
                                        null
                                    ],
                                    "id": 4638,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 4636,
                                                "name": "sender",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4630,
                                                "src": "1876:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 4634,
                                                "name": "_client",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4583,
                                                "src": "1860:7:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_VerifiedClient_$6873",
                                                    "typeString": "contract VerifiedClient"
                                                }
                                            },
                                            "id": 4635,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getRole",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 6731,
                                            "src": "1860:15:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "function (address) view external returns (bytes32,bytes32,bytes32)"
                                            }
                                        },
                                        "id": 4637,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1860:23:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "tuple(bytes32,bytes32,bytes32)"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "1839:44:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 4654,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "id": 4650,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 4646,
                                                                        "name": "this",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 9502,
                                                                        "src": "1934:4:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_contract$_Security_$5917",
                                                                            "typeString": "contract Security"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_Security_$5917",
                                                                            "typeString": "contract Security"
                                                                        }
                                                                    ],
                                                                    "id": 4645,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "ElementaryTypeNameExpression",
                                                                    "src": "1926:7:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_address_$",
                                                                        "typeString": "type(address)"
                                                                    },
                                                                    "typeName": "address"
                                                                },
                                                                "id": 4647,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "1926:13:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "arguments": [],
                                                                        "expression": {
                                                                            "argumentTypes": [],
                                                                            "id": 4641,
                                                                            "name": "owner",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 328,
                                                                            "src": "1911:5:22",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                                                                                "typeString": "function () view returns (address)"
                                                                            }
                                                                        },
                                                                        "id": 4642,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "functionCall",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "1911:7:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "id": 4640,
                                                                    "name": "IFactory",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6628,
                                                                    "src": "1902:8:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_contract$_IFactory_$6628_$",
                                                                        "typeString": "type(contract IFactory)"
                                                                    }
                                                                },
                                                                "id": 4643,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "1902:17:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_IFactory_$6628",
                                                                    "typeString": "contract IFactory"
                                                                }
                                                            },
                                                            "id": 4644,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "getDP",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 6627,
                                                            "src": "1902:23:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                                                                "typeString": "function (address) view external returns (address)"
                                                            }
                                                        },
                                                        "id": 4648,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "1902:38:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4649,
                                                        "name": "sender",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4630,
                                                        "src": "1942:6:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "1902:46:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "||",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "id": 4653,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4651,
                                                        "name": "role",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4633,
                                                        "src": "1952:4:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "437573746f6469616e",
                                                        "id": 4652,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "1958:11:22",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_5451fdb1391c16e8771946db3b26e7709a09330c5a2ef89b047712fdb1b5d7ce",
                                                            "typeString": "literal_string \"Custodian\""
                                                        },
                                                        "value": "Custodian"
                                                    },
                                                    "src": "1952:17:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "src": "1902:67:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "4e6f7420697373756572206f7220637573746f6469616e",
                                                "id": 4655,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "1989:25:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_357da7ad9ae224b030c41ccc448abd5e79aed72af649c63aa422e9d75d1cef8a",
                                                    "typeString": "literal_string \"Not issuer or custodian\""
                                                },
                                                "value": "Not issuer or custodian"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_357da7ad9ae224b030c41ccc448abd5e79aed72af649c63aa422e9d75d1cef8a",
                                                    "typeString": "literal_string \"Not issuer or custodian\""
                                                }
                                            ],
                                            "id": 4639,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "1894:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 4656,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1894:121:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4657,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1894:121:22"
                                },
                                {
                                    "id": 4658,
                                    "nodeType": "PlaceholderStatement",
                                    "src": "2026:1:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4660,
                        "name": "onlyIssueManagerOrCustodian",
                        "nodeType": "ModifierDefinition",
                        "parameters": {
                            "id": 4631,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4630,
                                    "name": "sender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4660,
                                    "src": "1813:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4629,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1813:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1812:16:22"
                        },
                        "src": "1776:259:22",
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 4680,
                            "nodeType": "Block",
                            "src": "2085:118:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                "id": 4675,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 4671,
                                                                    "name": "this",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 9502,
                                                                    "src": "2136:4:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_Security_$5917",
                                                                        "typeString": "contract Security"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_contract$_Security_$5917",
                                                                        "typeString": "contract Security"
                                                                    }
                                                                ],
                                                                "id": 4670,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "lValueRequested": false,
                                                                "nodeType": "ElementaryTypeNameExpression",
                                                                "src": "2128:7:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_address_$",
                                                                    "typeString": "type(address)"
                                                                },
                                                                "typeName": "address"
                                                            },
                                                            "id": 4672,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "2128:13:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "arguments": [],
                                                                    "expression": {
                                                                        "argumentTypes": [],
                                                                        "id": 4666,
                                                                        "name": "owner",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 328,
                                                                        "src": "2113:5:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                                                                            "typeString": "function () view returns (address)"
                                                                        }
                                                                    },
                                                                    "id": 4667,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "2113:7:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 4665,
                                                                "name": "IFactory",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6628,
                                                                "src": "2104:8:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_IFactory_$6628_$",
                                                                    "typeString": "type(contract IFactory)"
                                                                }
                                                            },
                                                            "id": 4668,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "2104:17:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_IFactory_$6628",
                                                                "typeString": "contract IFactory"
                                                            }
                                                        },
                                                        "id": 4669,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "getDP",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 6627,
                                                        "src": "2104:23:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                                                            "typeString": "function (address) view external returns (address)"
                                                        }
                                                    },
                                                    "id": 4673,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "2104:38:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4674,
                                                    "name": "sender",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 4662,
                                                    "src": "2144:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "src": "2104:46:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "4f6e6c7920697373756572206d616e616765727320616c6c6f776564",
                                                "id": 4676,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "2152:30:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_9aae436f01e452f332c999c70ec9e12d679c868052a790c26c256ff429642457",
                                                    "typeString": "literal_string \"Only issuer managers allowed\""
                                                },
                                                "value": "Only issuer managers allowed"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_9aae436f01e452f332c999c70ec9e12d679c868052a790c26c256ff429642457",
                                                    "typeString": "literal_string \"Only issuer managers allowed\""
                                                }
                                            ],
                                            "id": 4664,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "2096:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 4677,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2096:87:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4678,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2096:87:22"
                                },
                                {
                                    "id": 4679,
                                    "nodeType": "PlaceholderStatement",
                                    "src": "2194:1:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4681,
                        "name": "onlyIssueManager",
                        "nodeType": "ModifierDefinition",
                        "parameters": {
                            "id": 4663,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4662,
                                    "name": "sender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4681,
                                    "src": "2070:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4661,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2070:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2069:16:22"
                        },
                        "src": "2043:160:22",
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 4713,
                            "nodeType": "Block",
                            "src": "2268:171:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 4708,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "id": 4704,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "commonType": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "id": 4692,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4688,
                                                                "name": "whitelisted",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4600,
                                                                "src": "2287:11:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                    "typeString": "mapping(address => uint256)"
                                                                }
                                                            },
                                                            "id": 4690,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 4689,
                                                                "name": "sender",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4683,
                                                                "src": "2299:6:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "2287:19:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": ">=",
                                                        "rightExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4691,
                                                            "name": "amount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4685,
                                                            "src": "2310:6:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "src": "2287:29:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "||",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "commonType": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "id": 4703,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 4699,
                                                                            "name": "this",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 9502,
                                                                            "src": "2352:4:22",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_contract$_Security_$5917",
                                                                                "typeString": "contract Security"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_contract$_Security_$5917",
                                                                                "typeString": "contract Security"
                                                                            }
                                                                        ],
                                                                        "id": 4698,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": true,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "ElementaryTypeNameExpression",
                                                                        "src": "2344:7:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_address_$",
                                                                            "typeString": "type(address)"
                                                                        },
                                                                        "typeName": "address"
                                                                    },
                                                                    "id": 4700,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "typeConversion",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "2344:13:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "arguments": [],
                                                                            "expression": {
                                                                                "argumentTypes": [],
                                                                                "id": 4694,
                                                                                "name": "owner",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 328,
                                                                                "src": "2329:5:22",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                                                                                    "typeString": "function () view returns (address)"
                                                                                }
                                                                            },
                                                                            "id": 4695,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "kind": "functionCall",
                                                                            "lValueRequested": false,
                                                                            "names": [],
                                                                            "nodeType": "FunctionCall",
                                                                            "src": "2329:7:22",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        ],
                                                                        "id": 4693,
                                                                        "name": "IFactory",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6628,
                                                                        "src": "2320:8:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_IFactory_$6628_$",
                                                                            "typeString": "type(contract IFactory)"
                                                                        }
                                                                    },
                                                                    "id": 4696,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "typeConversion",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "2320:17:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_IFactory_$6628",
                                                                        "typeString": "contract IFactory"
                                                                    }
                                                                },
                                                                "id": 4697,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "getDP",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 6627,
                                                                "src": "2320:23:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                                                                    "typeString": "function (address) view external returns (address)"
                                                                }
                                                            },
                                                            "id": 4701,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "2320:38:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": "==",
                                                        "rightExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4702,
                                                            "name": "sender",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4683,
                                                            "src": "2360:6:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "src": "2320:46:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "src": "2287:79:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "||",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "id": 4707,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4705,
                                                        "name": "sender",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4683,
                                                        "src": "2370:6:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4706,
                                                        "name": "_issuer",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4585,
                                                        "src": "2378:7:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "2370:15:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "src": "2287:98:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "53656e6465722077616c6c6574206e6f742077686974656c6973746564",
                                                "id": 4709,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "2387:31:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_fdc2378cfc3ce25a15156a76aba71fb670b03bf5fa019bf0eeff7172fdd75587",
                                                    "typeString": "literal_string \"Sender wallet not whitelisted\""
                                                },
                                                "value": "Sender wallet not whitelisted"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_fdc2378cfc3ce25a15156a76aba71fb670b03bf5fa019bf0eeff7172fdd75587",
                                                    "typeString": "literal_string \"Sender wallet not whitelisted\""
                                                }
                                            ],
                                            "id": 4687,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "2279:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 4710,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2279:140:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4711,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2279:140:22"
                                },
                                {
                                    "id": 4712,
                                    "nodeType": "PlaceholderStatement",
                                    "src": "2430:1:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4714,
                        "name": "onlyWhiteListed",
                        "nodeType": "ModifierDefinition",
                        "parameters": {
                            "id": 4686,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4683,
                                    "name": "sender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4714,
                                    "src": "2237:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4682,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2237:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4685,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4714,
                                    "src": "2253:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 4684,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2253:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2236:32:22"
                        },
                        "src": "2211:228:22",
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 4771,
                            "nodeType": "Block",
                            "src": "2896:267:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 4734,
                                                "name": "_owner",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4720,
                                                "src": "2934:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 4731,
                                                "name": "Ownable",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 409,
                                                "src": "2915:7:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_Ownable_$409_$",
                                                    "typeString": "type(contract Ownable)"
                                                }
                                            },
                                            "id": 4733,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "initialize",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 320,
                                            "src": "2915:18:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                                                "typeString": "function (address)"
                                            }
                                        },
                                        "id": 4735,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2915:26:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4736,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2915:26:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 4744,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 4737,
                                            "name": "_name",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4579,
                                            "src": "2952:5:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_string_storage",
                                                "typeString": "string storage ref"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4741,
                                                            "name": "name_",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4716,
                                                            "src": "2984:5:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 4739,
                                                            "name": "abi",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9411,
                                                            "src": "2967:3:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_magic_abi",
                                                                "typeString": "abi"
                                                            }
                                                        },
                                                        "id": 4740,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "memberName": "encodePacked",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "2967:16:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                                            "typeString": "function () pure returns (bytes memory)"
                                                        }
                                                    },
                                                    "id": 4742,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "2967:23:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes_memory_ptr",
                                                        "typeString": "bytes memory"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_bytes_memory_ptr",
                                                        "typeString": "bytes memory"
                                                    }
                                                ],
                                                "id": 4738,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "2960:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                                                    "typeString": "type(string storage pointer)"
                                                },
                                                "typeName": "string"
                                            },
                                            "id": 4743,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "2960:31:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_string_memory_ptr",
                                                "typeString": "string memory"
                                            }
                                        },
                                        "src": "2952:39:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage",
                                            "typeString": "string storage ref"
                                        }
                                    },
                                    "id": 4745,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2952:39:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 4753,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 4746,
                                            "name": "_symbol",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4581,
                                            "src": "3002:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_string_storage",
                                                "typeString": "string storage ref"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4750,
                                                            "name": "symbol_",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4718,
                                                            "src": "3036:7:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 4748,
                                                            "name": "abi",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9411,
                                                            "src": "3019:3:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_magic_abi",
                                                                "typeString": "abi"
                                                            }
                                                        },
                                                        "id": 4749,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "memberName": "encodePacked",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "3019:16:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                                            "typeString": "function () pure returns (bytes memory)"
                                                        }
                                                    },
                                                    "id": 4751,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "3019:25:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes_memory_ptr",
                                                        "typeString": "bytes memory"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_bytes_memory_ptr",
                                                        "typeString": "bytes memory"
                                                    }
                                                ],
                                                "id": 4747,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "3012:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                                                    "typeString": "type(string storage pointer)"
                                                },
                                                "typeName": "string"
                                            },
                                            "id": 4752,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "3012:33:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_string_memory_ptr",
                                                "typeString": "string memory"
                                            }
                                        },
                                        "src": "3002:43:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage",
                                            "typeString": "string storage ref"
                                        }
                                    },
                                    "id": 4754,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3002:43:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 4757,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 4755,
                                            "name": "_issuer",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4585,
                                            "src": "3056:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 4756,
                                            "name": "issuer",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4722,
                                            "src": "3066:6:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "3056:16:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 4758,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3056:16:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 4763,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 4759,
                                            "name": "_client",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4583,
                                            "src": "3083:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_VerifiedClient_$6873",
                                                "typeString": "contract VerifiedClient"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 4761,
                                                    "name": "client",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 4724,
                                                    "src": "3108:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "id": 4760,
                                                "name": "VerifiedClient",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6873,
                                                "src": "3093:14:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_VerifiedClient_$6873_$",
                                                    "typeString": "type(contract VerifiedClient)"
                                                }
                                            },
                                            "id": 4762,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "3093:22:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_VerifiedClient_$6873",
                                                "typeString": "contract VerifiedClient"
                                            }
                                        },
                                        "src": "3083:32:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_VerifiedClient_$6873",
                                            "typeString": "contract VerifiedClient"
                                        }
                                    },
                                    "id": 4764,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3083:32:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 4769,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 4765,
                                            "name": "fundsToken",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4602,
                                            "src": "3126:10:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_IERC20_$890",
                                                "typeString": "contract IERC20"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 4767,
                                                    "name": "currency",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 4726,
                                                    "src": "3146:8:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "id": 4766,
                                                "name": "IERC20",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 890,
                                                "src": "3139:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_IERC20_$890_$",
                                                    "typeString": "type(contract IERC20)"
                                                }
                                            },
                                            "id": 4768,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "3139:16:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_IERC20_$890",
                                                "typeString": "contract IERC20"
                                            }
                                        },
                                        "src": "3126:29:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_IERC20_$890",
                                            "typeString": "contract IERC20"
                                        }
                                    },
                                    "id": 4770,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3126:29:22"
                                }
                            ]
                        },
                        "documentation": "@dev Sets the values for {name} and {symbol}.\r\n\n     * The default value of {decimals} is 18. To select a different value for\r\n{decimals} you should overload it.\r\n\n     * All two of these values are immutable: they can only be set once during\r\nconstruction.\r",
                        "id": 4772,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": null,
                                "id": 4729,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 4728,
                                    "name": "initializer",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1017,
                                    "src": "2884:11:22",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "2884:11:22"
                            }
                        ],
                        "name": "initialize",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4727,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4716,
                                    "name": "name_",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4772,
                                    "src": "2779:13:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 4715,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2779:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4718,
                                    "name": "symbol_",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4772,
                                    "src": "2794:15:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 4717,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2794:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4720,
                                    "name": "_owner",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4772,
                                    "src": "2811:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4719,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2811:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4722,
                                    "name": "issuer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4772,
                                    "src": "2827:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4721,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2827:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4724,
                                    "name": "client",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4772,
                                    "src": "2843:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4723,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2843:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4726,
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4772,
                                    "src": "2859:16:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4725,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2859:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2778:98:22"
                        },
                        "returnParameters": {
                            "id": 4730,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "2896:0:22"
                        },
                        "scope": 5917,
                        "src": "2759:404:22",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 4779,
                            "nodeType": "Block",
                            "src": "3285:31:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 4777,
                                        "name": "_name",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4579,
                                        "src": "3303:5:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage",
                                            "typeString": "string storage ref"
                                        }
                                    },
                                    "functionReturnParameters": 4776,
                                    "id": 4778,
                                    "nodeType": "Return",
                                    "src": "3296:12:22"
                                }
                            ]
                        },
                        "documentation": "@dev Returns the name of the token.\r",
                        "id": 4780,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "name",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4773,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "3246:2:22"
                        },
                        "returnParameters": {
                            "id": 4776,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4775,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4780,
                                    "src": "3270:13:22",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string"
                                    },
                                    "typeName": {
                                        "id": 4774,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3270:6:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3269:15:22"
                        },
                        "scope": 5917,
                        "src": "3233:83:22",
                        "stateMutability": "view",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 4787,
                            "nodeType": "Block",
                            "src": "3489:33:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 4785,
                                        "name": "_symbol",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4581,
                                        "src": "3507:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage",
                                            "typeString": "string storage ref"
                                        }
                                    },
                                    "functionReturnParameters": 4784,
                                    "id": 4786,
                                    "nodeType": "Return",
                                    "src": "3500:14:22"
                                }
                            ]
                        },
                        "documentation": "@dev Returns the symbol of the token, usually a shorter version of the\r\nname.\r",
                        "id": 4788,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "symbol",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4781,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "3450:2:22"
                        },
                        "returnParameters": {
                            "id": 4784,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4783,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4788,
                                    "src": "3474:13:22",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string"
                                    },
                                    "typeName": {
                                        "id": 4782,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3474:6:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3473:15:22"
                        },
                        "scope": 5917,
                        "src": "3435:87:22",
                        "stateMutability": "view",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 4795,
                            "nodeType": "Block",
                            "src": "3655:28:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "hexValue": "3138",
                                        "id": 4793,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3673:2:22",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_rational_18_by_1",
                                            "typeString": "int_const 18"
                                        },
                                        "value": "18"
                                    },
                                    "functionReturnParameters": 4792,
                                    "id": 4794,
                                    "nodeType": "Return",
                                    "src": "3666:9:22"
                                }
                            ]
                        },
                        "documentation": "Securities are indivisible, so returning decimal 0\r",
                        "id": 4796,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "decimals",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4789,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "3624:2:22"
                        },
                        "returnParameters": {
                            "id": 4792,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4791,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4796,
                                    "src": "3648:5:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                    },
                                    "typeName": {
                                        "id": 4790,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3648:5:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3647:7:22"
                        },
                        "scope": 5917,
                        "src": "3607:76:22",
                        "stateMutability": "view",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 4836,
                            "nodeType": "Block",
                            "src": "3760:213:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "hexValue": "307830",
                                                        "id": 4807,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "3800:3:22",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        },
                                                        "value": "0x0"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        }
                                                    ],
                                                    "id": 4806,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "3792:7:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_address_$",
                                                        "typeString": "type(address)"
                                                    },
                                                    "typeName": "address"
                                                },
                                                "id": 4808,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "3792:12:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4809,
                                                "name": "issuer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4798,
                                                "src": "3806:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4810,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4800,
                                                "src": "3814:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 4805,
                                            "name": "_beforeTokenTransfer",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6207,
                                            "src": "3771:20:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,address,uint256)"
                                            }
                                        },
                                        "id": 4811,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3771:50:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4812,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3771:50:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 4814,
                                                "name": "issuer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4798,
                                                "src": "3838:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4815,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4800,
                                                "src": "3846:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 4813,
                                            "name": "_mint",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                3816
                                            ],
                                            "referencedDeclaration": 3816,
                                            "src": "3832:5:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,uint256)"
                                            }
                                        },
                                        "id": 4816,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3832:21:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4817,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3832:21:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 4821,
                                                "name": "issuer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4798,
                                                "src": "3877:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 4818,
                                                "name": "holders",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4588,
                                                "src": "3864:7:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                    "typeString": "address[] storage ref"
                                                }
                                            },
                                            "id": 4820,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "push",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": null,
                                            "src": "3864:12:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$",
                                                "typeString": "function (address) returns (uint256)"
                                            }
                                        },
                                        "id": 4822,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3864:20:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 4823,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3864:20:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 4829,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 4824,
                                                "name": "holderIndex",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4592,
                                                "src": "3895:11:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                    "typeString": "mapping(address => uint256)"
                                                }
                                            },
                                            "id": 4826,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 4825,
                                                "name": "issuer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4798,
                                                "src": "3907:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "3895:19:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 4827,
                                                "name": "holders",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4588,
                                                "src": "3915:7:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                    "typeString": "address[] storage ref"
                                                }
                                            },
                                            "id": 4828,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "length",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": null,
                                            "src": "3915:14:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "3895:34:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 4830,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3895:34:22"
                                },
                                {
                                    "eventCall": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 4832,
                                                "name": "issuer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4798,
                                                "src": "3950:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4833,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4800,
                                                "src": "3958:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 4831,
                                            "name": "Mint",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4628,
                                            "src": "3945:4:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,uint256)"
                                            }
                                        },
                                        "id": 4834,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3945:20:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4835,
                                    "nodeType": "EmitStatement",
                                    "src": "3940:25:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4837,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": null,
                                "id": 4803,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 4802,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 338,
                                    "src": "3751:9:22",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "3751:9:22"
                            }
                        ],
                        "name": "mintToken",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4801,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4798,
                                    "name": "issuer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4837,
                                    "src": "3710:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4797,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3710:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4800,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4837,
                                    "src": "3726:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 4799,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3726:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3709:32:22"
                        },
                        "returnParameters": {
                            "id": 4804,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "3760:0:22"
                        },
                        "scope": 5917,
                        "src": "3691:282:22",
                        "stateMutability": "nonpayable",
                        "superFunction": 6671,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 4880,
                            "nodeType": "Block",
                            "src": "4078:267:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 4849,
                                                "name": "transferor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4839,
                                                "src": "4110:10:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4850,
                                                "name": "transferee",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4841,
                                                "src": "4122:10:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4851,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4843,
                                                "src": "4134:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 4848,
                                            "name": "_beforeTokenTransfer",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6207,
                                            "src": "4089:20:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,address,uint256)"
                                            }
                                        },
                                        "id": 4852,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4089:52:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4853,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4089:52:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 4855,
                                                "name": "transferor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4839,
                                                "src": "4162:10:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4856,
                                                "name": "transferee",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4841,
                                                "src": "4174:10:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4857,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4843,
                                                "src": "4186:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 4854,
                                            "name": "_transfer",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                3784
                                            ],
                                            "referencedDeclaration": 3784,
                                            "src": "4152:9:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,address,uint256)"
                                            }
                                        },
                                        "id": 4858,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4152:41:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4859,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4152:41:22"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 4864,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 4860,
                                                "name": "holderIndex",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4592,
                                                "src": "4207:11:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                    "typeString": "mapping(address => uint256)"
                                                }
                                            },
                                            "id": 4862,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 4861,
                                                "name": "transferee",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4841,
                                                "src": "4219:10:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "4207:23:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 4863,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "4232:1:22",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "src": "4207:26:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": null,
                                    "id": 4879,
                                    "nodeType": "IfStatement",
                                    "src": "4204:134:22",
                                    "trueBody": {
                                        "id": 4878,
                                        "nodeType": "Block",
                                        "src": "4234:104:22",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4868,
                                                            "name": "transferee",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4841,
                                                            "src": "4262:10:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 4865,
                                                            "name": "holders",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4588,
                                                            "src": "4249:7:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                "typeString": "address[] storage ref"
                                                            }
                                                        },
                                                        "id": 4867,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "push",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "4249:12:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$",
                                                            "typeString": "function (address) returns (uint256)"
                                                        }
                                                    },
                                                    "id": 4869,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "4249:24:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 4870,
                                                "nodeType": "ExpressionStatement",
                                                "src": "4249:24:22"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4876,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4871,
                                                            "name": "holderIndex",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4592,
                                                            "src": "4288:11:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                "typeString": "mapping(address => uint256)"
                                                            }
                                                        },
                                                        "id": 4873,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4872,
                                                            "name": "transferee",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4841,
                                                            "src": "4300:10:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "4288:23:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 4874,
                                                            "name": "holders",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4588,
                                                            "src": "4312:7:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                "typeString": "address[] storage ref"
                                                            }
                                                        },
                                                        "id": 4875,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "length",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "4312:14:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "4288:38:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 4877,
                                                "nodeType": "ExpressionStatement",
                                                "src": "4288:38:22"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4881,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": null,
                                "id": 4846,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 4845,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 338,
                                    "src": "4069:9:22",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "4069:9:22"
                            }
                        ],
                        "name": "transferToken",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4844,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4839,
                                    "name": "transferor",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4881,
                                    "src": "4004:18:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4838,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4004:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4841,
                                    "name": "transferee",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4881,
                                    "src": "4024:18:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4840,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4024:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4843,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4881,
                                    "src": "4044:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 4842,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4044:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4003:56:22"
                        },
                        "returnParameters": {
                            "id": 4847,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "4078:0:22"
                        },
                        "scope": 5917,
                        "src": "3981:364:22",
                        "stateMutability": "nonpayable",
                        "superFunction": 6664,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 4906,
                            "nodeType": "Block",
                            "src": "4452:102:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 4896,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4894,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9078,
                                                    "src": "4471:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 4895,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "4481:5:22",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "4471:15:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "436f6e747261637420706175736564",
                                                "id": 4897,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "4488:17:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                },
                                                "value": "Contract paused"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                }
                                            ],
                                            "id": 4893,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "4463:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 4898,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4463:43:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4899,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4463:43:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 4904,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 4900,
                                                "name": "whitelisted",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4600,
                                                "src": "4517:11:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                    "typeString": "mapping(address => uint256)"
                                                }
                                            },
                                            "id": 4902,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 4901,
                                                "name": "spender",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4883,
                                                "src": "4529:7:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "4517:20:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 4903,
                                            "name": "amount",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4885,
                                            "src": "4540:6:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "4517:29:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 4905,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4517:29:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4907,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 4888,
                                            "name": "_msgSender",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 17,
                                            "src": "4421:10:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                "typeString": "function () view returns (address payable)"
                                            }
                                        },
                                        "id": 4889,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4421:12:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    },
                                    {
                                        "argumentTypes": null,
                                        "id": 4890,
                                        "name": "amount",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4885,
                                        "src": "4435:6:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    }
                                ],
                                "id": 4891,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 4887,
                                    "name": "onlyWhiteListed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4714,
                                    "src": "4405:15:22",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$",
                                        "typeString": "modifier (address,uint256)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "4405:37:22"
                            }
                        ],
                        "name": "whiteList",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4886,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4883,
                                    "name": "spender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4907,
                                    "src": "4372:15:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4882,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4372:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4885,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4907,
                                    "src": "4389:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 4884,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4389:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4371:33:22"
                        },
                        "returnParameters": {
                            "id": 4892,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "4452:0:22"
                        },
                        "scope": 5917,
                        "src": "4353:201:22",
                        "stateMutability": "nonpayable",
                        "superFunction": 6678,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 4980,
                            "nodeType": "Block",
                            "src": "4806:445:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 4924,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4922,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9078,
                                                    "src": "4825:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 4923,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "4835:5:22",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "4825:15:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "436f6e747261637420706175736564",
                                                "id": 4925,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "4842:17:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                },
                                                "value": "Contract paused"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                }
                                            ],
                                            "id": 4921,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "4817:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 4926,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4817:43:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4927,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4817:43:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 4940,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4934,
                                                            "name": "amount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4911,
                                                            "src": "4907:6:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "arguments": [],
                                                                    "expression": {
                                                                        "argumentTypes": [],
                                                                        "id": 4930,
                                                                        "name": "_msgSender",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 17,
                                                                        "src": "4889:10:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                                            "typeString": "function () view returns (address payable)"
                                                                        }
                                                                    },
                                                                    "id": 4931,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "4889:12:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address_payable",
                                                                        "typeString": "address payable"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address_payable",
                                                                        "typeString": "address payable"
                                                                    }
                                                                ],
                                                                "id": 4929,
                                                                "name": "balanceOf",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 456,
                                                                "src": "4879:9:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
                                                                    "typeString": "function (address) view returns (uint256)"
                                                                }
                                                            },
                                                            "id": 4932,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "4879:23:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "id": 4933,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "sub",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 141,
                                                        "src": "4879:27:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                        }
                                                    },
                                                    "id": 4935,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "4879:35:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": ">=",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 4936,
                                                        "name": "froze",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4596,
                                                        "src": "4918:5:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                            "typeString": "mapping(address => uint256)"
                                                        }
                                                    },
                                                    "id": 4939,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [],
                                                        "expression": {
                                                            "argumentTypes": [],
                                                            "id": 4937,
                                                            "name": "_msgSender",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 17,
                                                            "src": "4924:10:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                                "typeString": "function () view returns (address payable)"
                                                            }
                                                        },
                                                        "id": 4938,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "4924:12:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address_payable",
                                                            "typeString": "address payable"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "4918:19:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "src": "4879:58:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "46756e6473207472616e736665722066726f7a656e",
                                                "id": 4941,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "4939:23:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3085567a2873e615ac3b43d0b914f3549f761cfaba05e5356329e0446dd07792",
                                                    "typeString": "literal_string \"Funds transfer frozen\""
                                                },
                                                "value": "Funds transfer frozen"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3085567a2873e615ac3b43d0b914f3549f761cfaba05e5356329e0446dd07792",
                                                    "typeString": "literal_string \"Funds transfer frozen\""
                                                }
                                            ],
                                            "id": 4928,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "4871:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 4942,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4871:92:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4943,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4871:92:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [],
                                                "expression": {
                                                    "argumentTypes": [],
                                                    "id": 4945,
                                                    "name": "_msgSender",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 17,
                                                    "src": "4995:10:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                        "typeString": "function () view returns (address payable)"
                                                    }
                                                },
                                                "id": 4946,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "4995:12:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4947,
                                                "name": "recipient",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4909,
                                                "src": "5009:9:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4948,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4911,
                                                "src": "5020:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 4944,
                                            "name": "_beforeTokenTransfer",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6207,
                                            "src": "4974:20:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,address,uint256)"
                                            }
                                        },
                                        "id": 4949,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4974:53:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4950,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4974:53:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [],
                                                "expression": {
                                                    "argumentTypes": [],
                                                    "id": 4952,
                                                    "name": "_msgSender",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 17,
                                                    "src": "5048:10:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                        "typeString": "function () view returns (address payable)"
                                                    }
                                                },
                                                "id": 4953,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "5048:12:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4954,
                                                "name": "recipient",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4909,
                                                "src": "5062:9:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 4955,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4911,
                                                "src": "5073:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 4951,
                                            "name": "_transfer",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                3784
                                            ],
                                            "referencedDeclaration": 3784,
                                            "src": "5038:9:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,address,uint256)"
                                            }
                                        },
                                        "id": 4956,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5038:42:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 4957,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5038:42:22"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 4962,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 4958,
                                                "name": "holderIndex",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4592,
                                                "src": "5094:11:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                    "typeString": "mapping(address => uint256)"
                                                }
                                            },
                                            "id": 4960,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 4959,
                                                "name": "recipient",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4909,
                                                "src": "5106:9:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "5094:22:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 4961,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "5118:1:22",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "src": "5094:25:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": null,
                                    "id": 4977,
                                    "nodeType": "IfStatement",
                                    "src": "5091:131:22",
                                    "trueBody": {
                                        "id": 4976,
                                        "nodeType": "Block",
                                        "src": "5120:102:22",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 4966,
                                                            "name": "recipient",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4909,
                                                            "src": "5148:9:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 4963,
                                                            "name": "holders",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4588,
                                                            "src": "5135:7:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                "typeString": "address[] storage ref"
                                                            }
                                                        },
                                                        "id": 4965,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "push",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "5135:12:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$",
                                                            "typeString": "function (address) returns (uint256)"
                                                        }
                                                    },
                                                    "id": 4967,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "5135:23:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 4968,
                                                "nodeType": "ExpressionStatement",
                                                "src": "5135:23:22"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 4974,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4969,
                                                            "name": "holderIndex",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4592,
                                                            "src": "5173:11:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                "typeString": "mapping(address => uint256)"
                                                            }
                                                        },
                                                        "id": 4971,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 4970,
                                                            "name": "recipient",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4909,
                                                            "src": "5185:9:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "5173:22:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 4972,
                                                            "name": "holders",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4588,
                                                            "src": "5196:7:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                "typeString": "address[] storage ref"
                                                            }
                                                        },
                                                        "id": 4973,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "length",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "5196:14:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "5173:37:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 4975,
                                                "nodeType": "ExpressionStatement",
                                                "src": "5173:37:22"
                                            }
                                        ]
                                    }
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "hexValue": "74727565",
                                        "id": 4978,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "5239:4:22",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "value": "true"
                                    },
                                    "functionReturnParameters": 4920,
                                    "id": 4979,
                                    "nodeType": "Return",
                                    "src": "5232:11:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 4981,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 4914,
                                            "name": "_msgSender",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 17,
                                            "src": "4762:10:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                "typeString": "function () view returns (address payable)"
                                            }
                                        },
                                        "id": 4915,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4762:12:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    },
                                    {
                                        "argumentTypes": null,
                                        "id": 4916,
                                        "name": "amount",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4911,
                                        "src": "4776:6:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    }
                                ],
                                "id": 4917,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 4913,
                                    "name": "onlyWhiteListed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4714,
                                    "src": "4746:15:22",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$",
                                        "typeString": "modifier (address,uint256)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "4746:37:22"
                            }
                        ],
                        "name": "transfer",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4912,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4909,
                                    "name": "recipient",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4981,
                                    "src": "4711:17:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4908,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4711:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4911,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4981,
                                    "src": "4730:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 4910,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4730:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4710:35:22"
                        },
                        "returnParameters": {
                            "id": 4920,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4919,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4981,
                                    "src": "4800:4:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 4918,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4800:4:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4799:6:22"
                        },
                        "scope": 5917,
                        "src": "4693:558:22",
                        "stateMutability": "nonpayable",
                        "superFunction": 475,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5010,
                            "nodeType": "Block",
                            "src": "5534:134:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 4997,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 4995,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9078,
                                                    "src": "5553:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 4996,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "5563:5:22",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "5553:15:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "436f6e747261637420706175736564",
                                                "id": 4998,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "5570:17:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                },
                                                "value": "Contract paused"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                }
                                            ],
                                            "id": 4994,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "5545:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 4999,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5545:43:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5000,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5545:43:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [],
                                                "expression": {
                                                    "argumentTypes": [],
                                                    "id": 5002,
                                                    "name": "_msgSender",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 17,
                                                    "src": "5608:10:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                        "typeString": "function () view returns (address payable)"
                                                    }
                                                },
                                                "id": 5003,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "5608:12:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5004,
                                                "name": "spender",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4983,
                                                "src": "5622:7:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5005,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4985,
                                                "src": "5631:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 5001,
                                            "name": "_approve",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 787,
                                            "src": "5599:8:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,address,uint256)"
                                            }
                                        },
                                        "id": 5006,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5599:39:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5007,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5599:39:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "hexValue": "74727565",
                                        "id": 5008,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "5656:4:22",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "value": "true"
                                    },
                                    "functionReturnParameters": 4993,
                                    "id": 5009,
                                    "nodeType": "Return",
                                    "src": "5649:11:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5011,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "id": 4988,
                                        "name": "spender",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4983,
                                        "src": "5495:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    {
                                        "argumentTypes": null,
                                        "id": 4989,
                                        "name": "amount",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4985,
                                        "src": "5504:6:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    }
                                ],
                                "id": 4990,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 4987,
                                    "name": "onlyWhiteListed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4714,
                                    "src": "5479:15:22",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$",
                                        "typeString": "modifier (address,uint256)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "5479:32:22"
                            }
                        ],
                        "name": "approve",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 4986,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4983,
                                    "name": "spender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5011,
                                    "src": "5446:15:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 4982,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5446:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 4985,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5011,
                                    "src": "5463:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 4984,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5463:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "5445:33:22"
                        },
                        "returnParameters": {
                            "id": 4993,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 4992,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5011,
                                    "src": "5528:4:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 4991,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5528:4:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "5527:6:22"
                        },
                        "scope": 5917,
                        "src": "5429:239:22",
                        "stateMutability": "nonpayable",
                        "superFunction": 510,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5102,
                            "nodeType": "Block",
                            "src": "5959:591:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5030,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5028,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9078,
                                                    "src": "5978:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 5029,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "5988:5:22",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "5978:15:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "436f6e747261637420706175736564",
                                                "id": 5031,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "5995:17:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                },
                                                "value": "Contract paused"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                }
                                            ],
                                            "id": 5027,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "5970:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5032,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5970:43:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5033,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5970:43:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 5044,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5039,
                                                            "name": "amount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5017,
                                                            "src": "6054:6:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 5036,
                                                                    "name": "sender",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 5013,
                                                                    "src": "6042:6:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 5035,
                                                                "name": "balanceOf",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 456,
                                                                "src": "6032:9:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
                                                                    "typeString": "function (address) view returns (uint256)"
                                                                }
                                                            },
                                                            "id": 5037,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "6032:17:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "id": 5038,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "sub",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 141,
                                                        "src": "6032:21:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                        }
                                                    },
                                                    "id": 5040,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "6032:29:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": ">=",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5041,
                                                        "name": "froze",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4596,
                                                        "src": "6065:5:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                            "typeString": "mapping(address => uint256)"
                                                        }
                                                    },
                                                    "id": 5043,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5042,
                                                        "name": "sender",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5013,
                                                        "src": "6071:6:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "6065:13:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "src": "6032:46:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "46756e6473207472616e736665722066726f7a656e",
                                                "id": 5045,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "6080:23:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3085567a2873e615ac3b43d0b914f3549f761cfaba05e5356329e0446dd07792",
                                                    "typeString": "literal_string \"Funds transfer frozen\""
                                                },
                                                "value": "Funds transfer frozen"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3085567a2873e615ac3b43d0b914f3549f761cfaba05e5356329e0446dd07792",
                                                    "typeString": "literal_string \"Funds transfer frozen\""
                                                }
                                            ],
                                            "id": 5034,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "6024:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5046,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6024:80:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5047,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6024:80:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 5049,
                                                "name": "sender",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5013,
                                                "src": "6136:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5050,
                                                "name": "recipient",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5015,
                                                "src": "6144:9:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5051,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5017,
                                                "src": "6155:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 5048,
                                            "name": "_beforeTokenTransfer",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6207,
                                            "src": "6115:20:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,address,uint256)"
                                            }
                                        },
                                        "id": 5052,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6115:47:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5053,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6115:47:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 5055,
                                                "name": "sender",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5013,
                                                "src": "6183:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5056,
                                                "name": "recipient",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5015,
                                                "src": "6191:9:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5057,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5017,
                                                "src": "6202:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 5054,
                                            "name": "_transfer",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                3784
                                            ],
                                            "referencedDeclaration": 3784,
                                            "src": "6173:9:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,address,uint256)"
                                            }
                                        },
                                        "id": 5058,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6173:36:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5059,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6173:36:22"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        },
                                        "id": 5063,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 5060,
                                            "name": "sender",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5013,
                                            "src": "6223:6:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "!=",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "arguments": [],
                                            "expression": {
                                                "argumentTypes": [],
                                                "id": 5061,
                                                "name": "_msgSender",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 17,
                                                "src": "6233:10:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                    "typeString": "function () view returns (address payable)"
                                                }
                                            },
                                            "id": 5062,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "6233:12:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address_payable",
                                                "typeString": "address payable"
                                            }
                                        },
                                        "src": "6223:22:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": null,
                                    "id": 5079,
                                    "nodeType": "IfStatement",
                                    "src": "6220:159:22",
                                    "trueBody": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 5065,
                                                    "name": "sender",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5013,
                                                    "src": "6269:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                {
                                                    "argumentTypes": null,
                                                    "arguments": [],
                                                    "expression": {
                                                        "argumentTypes": [],
                                                        "id": 5066,
                                                        "name": "_msgSender",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 17,
                                                        "src": "6277:10:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                            "typeString": "function () view returns (address payable)"
                                                        }
                                                    },
                                                    "id": 5067,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "6277:12:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                },
                                                {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5074,
                                                            "name": "amount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5017,
                                                            "src": "6327:6:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "hexValue": "45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365",
                                                            "id": 5075,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "string",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "6335:42:22",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330",
                                                                "typeString": "literal_string \"ERC20: transfer amount exceeds allowance\""
                                                            },
                                                            "value": "ERC20: transfer amount exceeds allowance"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330",
                                                                "typeString": "literal_string \"ERC20: transfer amount exceeds allowance\""
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 5069,
                                                                    "name": "sender",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 5013,
                                                                    "src": "6301:6:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "arguments": [],
                                                                    "expression": {
                                                                        "argumentTypes": [],
                                                                        "id": 5070,
                                                                        "name": "_msgSender",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 17,
                                                                        "src": "6309:10:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                                            "typeString": "function () view returns (address payable)"
                                                                        }
                                                                    },
                                                                    "id": 5071,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "6309:12:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address_payable",
                                                                        "typeString": "address payable"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_address_payable",
                                                                        "typeString": "address payable"
                                                                    }
                                                                ],
                                                                "id": 5068,
                                                                "name": "allowance",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 491,
                                                                "src": "6291:9:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$",
                                                                    "typeString": "function (address,address) view returns (uint256)"
                                                                }
                                                            },
                                                            "id": 5072,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "6291:31:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "id": 5073,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "sub",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 168,
                                                        "src": "6291:35:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                                            "typeString": "function (uint256,uint256,string memory) pure returns (uint256)"
                                                        }
                                                    },
                                                    "id": 5076,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "6291:87:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "id": 5064,
                                                "name": "_approve",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 787,
                                                "src": "6260:8:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                                                    "typeString": "function (address,address,uint256)"
                                                }
                                            },
                                            "id": 5077,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "6260:119:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_tuple$__$",
                                                "typeString": "tuple()"
                                            }
                                        },
                                        "id": 5078,
                                        "nodeType": "ExpressionStatement",
                                        "src": "6260:119:22"
                                    }
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 5084,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 5080,
                                                "name": "holderIndex",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4592,
                                                "src": "6393:11:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                    "typeString": "mapping(address => uint256)"
                                                }
                                            },
                                            "id": 5082,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 5081,
                                                "name": "recipient",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5015,
                                                "src": "6405:9:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "6393:22:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 5083,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "6417:1:22",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "src": "6393:25:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": null,
                                    "id": 5099,
                                    "nodeType": "IfStatement",
                                    "src": "6390:131:22",
                                    "trueBody": {
                                        "id": 5098,
                                        "nodeType": "Block",
                                        "src": "6419:102:22",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5088,
                                                            "name": "recipient",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5015,
                                                            "src": "6447:9:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 5085,
                                                            "name": "holders",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4588,
                                                            "src": "6434:7:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                "typeString": "address[] storage ref"
                                                            }
                                                        },
                                                        "id": 5087,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "push",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "6434:12:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$",
                                                            "typeString": "function (address) returns (uint256)"
                                                        }
                                                    },
                                                    "id": 5089,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "6434:23:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 5090,
                                                "nodeType": "ExpressionStatement",
                                                "src": "6434:23:22"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 5096,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 5091,
                                                            "name": "holderIndex",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4592,
                                                            "src": "6472:11:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                "typeString": "mapping(address => uint256)"
                                                            }
                                                        },
                                                        "id": 5093,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "id": 5092,
                                                            "name": "recipient",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5015,
                                                            "src": "6484:9:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "6472:22:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 5094,
                                                            "name": "holders",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 4588,
                                                            "src": "6495:7:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                "typeString": "address[] storage ref"
                                                            }
                                                        },
                                                        "id": 5095,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "length",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "6495:14:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "6472:37:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 5097,
                                                "nodeType": "ExpressionStatement",
                                                "src": "6472:37:22"
                                            }
                                        ]
                                    }
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "hexValue": "74727565",
                                        "id": 5100,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "6538:4:22",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "value": "true"
                                    },
                                    "functionReturnParameters": 5026,
                                    "id": 5101,
                                    "nodeType": "Return",
                                    "src": "6531:11:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5103,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 5020,
                                            "name": "_msgSender",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 17,
                                            "src": "5922:10:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                "typeString": "function () view returns (address payable)"
                                            }
                                        },
                                        "id": 5021,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5922:12:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    },
                                    {
                                        "argumentTypes": null,
                                        "id": 5022,
                                        "name": "amount",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5017,
                                        "src": "5936:6:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    }
                                ],
                                "id": 5023,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 5019,
                                    "name": "onlyWhiteListed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4714,
                                    "src": "5906:15:22",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$",
                                        "typeString": "modifier (address,uint256)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "5906:37:22"
                            }
                        ],
                        "name": "transferFrom",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5018,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5013,
                                    "name": "sender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5103,
                                    "src": "5848:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5012,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5848:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5015,
                                    "name": "recipient",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5103,
                                    "src": "5864:17:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5014,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5864:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5017,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5103,
                                    "src": "5883:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5016,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5883:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "5847:51:22"
                        },
                        "returnParameters": {
                            "id": 5026,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5025,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5103,
                                    "src": "5953:4:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 5024,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5953:4:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "5952:6:22"
                        },
                        "scope": 5917,
                        "src": "5826:724:22",
                        "stateMutability": "nonpayable",
                        "superFunction": 546,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5135,
                            "nodeType": "Block",
                            "src": "6644:176:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5115,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5113,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9078,
                                                    "src": "6663:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 5114,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "6673:5:22",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "6663:15:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "436f6e747261637420706175736564",
                                                "id": 5116,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "6680:17:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                },
                                                "value": "Contract paused"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                }
                                            ],
                                            "id": 5112,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "6655:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5117,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6655:43:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5118,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6655:43:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [],
                                                "expression": {
                                                    "argumentTypes": [],
                                                    "id": 5120,
                                                    "name": "_msgSender",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 17,
                                                    "src": "6718:10:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                        "typeString": "function () view returns (address payable)"
                                                    }
                                                },
                                                "id": 5121,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "6718:12:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5122,
                                                "name": "spender",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5105,
                                                "src": "6732:7:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 5129,
                                                        "name": "addedValue",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5107,
                                                        "src": "6778:10:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "arguments": [],
                                                                "expression": {
                                                                    "argumentTypes": [],
                                                                    "id": 5124,
                                                                    "name": "_msgSender",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 17,
                                                                    "src": "6751:10:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                                        "typeString": "function () view returns (address payable)"
                                                                    }
                                                                },
                                                                "id": 5125,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "6751:12:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 5126,
                                                                "name": "spender",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5105,
                                                                "src": "6765:7:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "id": 5123,
                                                            "name": "allowance",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 491,
                                                            "src": "6741:9:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$",
                                                                "typeString": "function (address,address) view returns (uint256)"
                                                            }
                                                        },
                                                        "id": 5127,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "6741:32:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "id": 5128,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "add",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 125,
                                                    "src": "6741:36:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                    }
                                                },
                                                "id": 5130,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "6741:48:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 5119,
                                            "name": "_approve",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 787,
                                            "src": "6709:8:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,address,uint256)"
                                            }
                                        },
                                        "id": 5131,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6709:81:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5132,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6709:81:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "hexValue": "74727565",
                                        "id": 5133,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "6808:4:22",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "value": "true"
                                    },
                                    "functionReturnParameters": 5111,
                                    "id": 5134,
                                    "nodeType": "Return",
                                    "src": "6801:11:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5136,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "increaseAllowance",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5108,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5105,
                                    "name": "spender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5136,
                                    "src": "6585:15:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5104,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6585:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5107,
                                    "name": "addedValue",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5136,
                                    "src": "6602:18:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5106,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6602:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "6584:37:22"
                        },
                        "returnParameters": {
                            "id": 5111,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5110,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5136,
                                    "src": "6638:4:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 5109,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6638:4:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "6637:6:22"
                        },
                        "scope": 5917,
                        "src": "6558:262:22",
                        "stateMutability": "nonpayable",
                        "superFunction": 573,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5169,
                            "nodeType": "Block",
                            "src": "6919:222:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5148,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5146,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9078,
                                                    "src": "6938:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 5147,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "6948:5:22",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "6938:15:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "436f6e747261637420706175736564",
                                                "id": 5149,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "6955:17:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                },
                                                "value": "Contract paused"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                }
                                            ],
                                            "id": 5145,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "6930:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5150,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6930:43:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5151,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6930:43:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [],
                                                "expression": {
                                                    "argumentTypes": [],
                                                    "id": 5153,
                                                    "name": "_msgSender",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 17,
                                                    "src": "6993:10:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                        "typeString": "function () view returns (address payable)"
                                                    }
                                                },
                                                "id": 5154,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "6993:12:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5155,
                                                "name": "spender",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5138,
                                                "src": "7007:7:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 5162,
                                                        "name": "subtractedValue",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5140,
                                                        "src": "7053:15:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f",
                                                        "id": 5163,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "7070:39:22",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8",
                                                            "typeString": "literal_string \"ERC20: decreased allowance below zero\""
                                                        },
                                                        "value": "ERC20: decreased allowance below zero"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8",
                                                            "typeString": "literal_string \"ERC20: decreased allowance below zero\""
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "arguments": [],
                                                                "expression": {
                                                                    "argumentTypes": [],
                                                                    "id": 5157,
                                                                    "name": "_msgSender",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 17,
                                                                    "src": "7026:10:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                                        "typeString": "function () view returns (address payable)"
                                                                    }
                                                                },
                                                                "id": 5158,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "7026:12:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 5159,
                                                                "name": "spender",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5138,
                                                                "src": "7040:7:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "id": 5156,
                                                            "name": "allowance",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 491,
                                                            "src": "7016:9:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$",
                                                                "typeString": "function (address,address) view returns (uint256)"
                                                            }
                                                        },
                                                        "id": 5160,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "7016:32:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "id": 5161,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "sub",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 168,
                                                    "src": "7016:36:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                                        "typeString": "function (uint256,uint256,string memory) pure returns (uint256)"
                                                    }
                                                },
                                                "id": 5164,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "7016:94:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 5152,
                                            "name": "_approve",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 787,
                                            "src": "6984:8:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,address,uint256)"
                                            }
                                        },
                                        "id": 5165,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6984:127:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5166,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6984:127:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "hexValue": "74727565",
                                        "id": 5167,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "7129:4:22",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "value": "true"
                                    },
                                    "functionReturnParameters": 5144,
                                    "id": 5168,
                                    "nodeType": "Return",
                                    "src": "7122:11:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5170,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "decreaseAllowance",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5141,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5138,
                                    "name": "spender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5170,
                                    "src": "6855:15:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5137,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6855:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5140,
                                    "name": "subtractedValue",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5170,
                                    "src": "6872:23:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5139,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6872:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "6854:42:22"
                        },
                        "returnParameters": {
                            "id": 5144,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5143,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5170,
                                    "src": "6913:4:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 5142,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6913:4:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "6912:6:22"
                        },
                        "scope": 5917,
                        "src": "6828:313:22",
                        "stateMutability": "nonpayable",
                        "superFunction": 601,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5200,
                            "nodeType": "Block",
                            "src": "7234:139:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5184,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5182,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9078,
                                                    "src": "7253:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 5183,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "7263:5:22",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "7253:15:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "436f6e747261637420706175736564",
                                                "id": 5185,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "7270:17:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                },
                                                "value": "Contract paused"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                }
                                            ],
                                            "id": 5181,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "7245:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5186,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7245:43:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5187,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7245:43:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 5192,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 5188,
                                                "name": "froze",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4596,
                                                "src": "7299:5:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                    "typeString": "mapping(address => uint256)"
                                                }
                                            },
                                            "id": 5190,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 5189,
                                                "name": "holder",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5172,
                                                "src": "7305:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "7299:13:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 5191,
                                            "name": "amount",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5174,
                                            "src": "7315:6:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "7299:22:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 5193,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7299:22:22"
                                },
                                {
                                    "eventCall": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [],
                                                "expression": {
                                                    "argumentTypes": [],
                                                    "id": 5195,
                                                    "name": "_msgSender",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 17,
                                                    "src": "7344:10:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                        "typeString": "function () view returns (address payable)"
                                                    }
                                                },
                                                "id": 5196,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "7344:12:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5197,
                                                "name": "holder",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5172,
                                                "src": "7358:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "id": 5194,
                                            "name": "Freeze",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4610,
                                            "src": "7337:6:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$",
                                                "typeString": "function (address,address)"
                                            }
                                        },
                                        "id": 5198,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7337:28:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5199,
                                    "nodeType": "EmitStatement",
                                    "src": "7332:33:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5201,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 5177,
                                            "name": "_msgSender",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 17,
                                            "src": "7221:10:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                "typeString": "function () view returns (address payable)"
                                            }
                                        },
                                        "id": 5178,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7221:12:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 5179,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 5176,
                                    "name": "onlyIssueManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4681,
                                    "src": "7204:16:22",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "7204:30:22"
                            }
                        ],
                        "name": "freeze",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5175,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5172,
                                    "name": "holder",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5201,
                                    "src": "7165:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5171,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7165:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5174,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5201,
                                    "src": "7181:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5173,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7181:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7164:32:22"
                        },
                        "returnParameters": {
                            "id": 5180,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "7234:0:22"
                        },
                        "scope": 5917,
                        "src": "7149:224:22",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5229,
                            "nodeType": "Block",
                            "src": "7453:136:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5213,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5211,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9078,
                                                    "src": "7472:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 5212,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "7482:5:22",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "7472:15:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "436f6e747261637420706175736564",
                                                "id": 5214,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "7489:17:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                },
                                                "value": "Contract paused"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                }
                                            ],
                                            "id": 5210,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "7464:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5215,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7464:43:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5216,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7464:43:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 5221,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 5217,
                                                "name": "froze",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4596,
                                                "src": "7518:5:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                    "typeString": "mapping(address => uint256)"
                                                }
                                            },
                                            "id": 5219,
                                            "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 5218,
                                                "name": "holder",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5203,
                                                "src": "7524:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "7518:13:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 5220,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "7534:1:22",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "src": "7518:17:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 5222,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7518:17:22"
                                },
                                {
                                    "eventCall": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [],
                                                "expression": {
                                                    "argumentTypes": [],
                                                    "id": 5224,
                                                    "name": "_msgSender",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 17,
                                                    "src": "7560:10:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                        "typeString": "function () view returns (address payable)"
                                                    }
                                                },
                                                "id": 5225,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "7560:12:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5226,
                                                "name": "holder",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5203,
                                                "src": "7574:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "id": 5223,
                                            "name": "Unfreeze",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4616,
                                            "src": "7551:8:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$",
                                                "typeString": "function (address,address)"
                                            }
                                        },
                                        "id": 5227,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7551:30:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5228,
                                    "nodeType": "EmitStatement",
                                    "src": "7546:35:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5230,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 5206,
                                            "name": "_msgSender",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 17,
                                            "src": "7439:10:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                "typeString": "function () view returns (address payable)"
                                            }
                                        },
                                        "id": 5207,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7439:12:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 5208,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 5205,
                                    "name": "onlyIssueManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4681,
                                    "src": "7422:16:22",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "7422:30:22"
                            }
                        ],
                        "name": "unfreeze",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5204,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5203,
                                    "name": "holder",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5230,
                                    "src": "7399:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5202,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7399:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7398:16:22"
                        },
                        "returnParameters": {
                            "id": 5209,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "7453:0:22"
                        },
                        "scope": 5917,
                        "src": "7381:208:22",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5248,
                            "nodeType": "Block",
                            "src": "7660:94:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5240,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5238,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9078,
                                                    "src": "7679:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 5239,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "7689:5:22",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "7679:15:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "436f6e747261637420706175736564",
                                                "id": 5241,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "7696:17:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                },
                                                "value": "Contract paused"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                }
                                            ],
                                            "id": 5237,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "7671:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5242,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7671:43:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5243,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7671:43:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                            "argumentTypes": null,
                                            "id": 5244,
                                            "name": "froze",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4596,
                                            "src": "7732:5:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                "typeString": "mapping(address => uint256)"
                                            }
                                        },
                                        "id": 5246,
                                        "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 5245,
                                            "name": "account",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5232,
                                            "src": "7738:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "7732:14:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 5236,
                                    "id": 5247,
                                    "nodeType": "Return",
                                    "src": "7725:21:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5249,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "frozen",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5233,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5232,
                                    "name": "account",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5249,
                                    "src": "7613:15:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5231,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7613:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7612:17:22"
                        },
                        "returnParameters": {
                            "id": 5236,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5235,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5249,
                                    "src": "7651:7:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5234,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7651:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7650:9:22"
                        },
                        "scope": 5917,
                        "src": "7597:157:22",
                        "stateMutability": "view",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5285,
                            "nodeType": "Block",
                            "src": "7846:199:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5263,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5261,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9078,
                                                    "src": "7865:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 5262,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "7875:5:22",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "7865:15:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "436f6e747261637420706175736564",
                                                "id": 5264,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "7882:17:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                },
                                                "value": "Contract paused"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                }
                                            ],
                                            "id": 5260,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "7857:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5265,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7857:43:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5266,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7857:43:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 5268,
                                                "name": "holder",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5251,
                                                "src": "7932:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "hexValue": "307830",
                                                        "id": 5270,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "7948:3:22",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        },
                                                        "value": "0x0"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        }
                                                    ],
                                                    "id": 5269,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "7940:7:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_address_$",
                                                        "typeString": "type(address)"
                                                    },
                                                    "typeName": "address"
                                                },
                                                "id": 5271,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "7940:12:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5272,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5253,
                                                "src": "7954:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 5267,
                                            "name": "_beforeTokenTransfer",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6207,
                                            "src": "7911:20:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,address,uint256)"
                                            }
                                        },
                                        "id": 5273,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7911:50:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5274,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7911:50:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 5276,
                                                "name": "holder",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5251,
                                                "src": "7978:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5277,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5253,
                                                "src": "7986:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 5275,
                                            "name": "_burn",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                3848
                                            ],
                                            "referencedDeclaration": 3848,
                                            "src": "7972:5:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,uint256)"
                                            }
                                        },
                                        "id": 5278,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7972:21:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5279,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7972:21:22"
                                },
                                {
                                    "eventCall": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 5281,
                                                "name": "holder",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5251,
                                                "src": "8021:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5282,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5253,
                                                "src": "8029:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 5280,
                                            "name": "Burn",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4622,
                                            "src": "8016:4:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,uint256)"
                                            }
                                        },
                                        "id": 5283,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8016:20:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5284,
                                    "nodeType": "EmitStatement",
                                    "src": "8011:25:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5286,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 5256,
                                            "name": "_msgSender",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 17,
                                            "src": "7832:10:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                "typeString": "function () view returns (address payable)"
                                            }
                                        },
                                        "id": 5257,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7832:12:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 5258,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 5255,
                                    "name": "onlyIssueManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4681,
                                    "src": "7815:16:22",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "7815:30:22"
                            }
                        ],
                        "name": "burn",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5254,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5251,
                                    "name": "holder",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5286,
                                    "src": "7776:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5250,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7776:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5253,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5286,
                                    "src": "7792:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5252,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7792:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7775:32:22"
                        },
                        "returnParameters": {
                            "id": 5259,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "7846:0:22"
                        },
                        "scope": 5917,
                        "src": "7762:283:22",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5342,
                            "nodeType": "Block",
                            "src": "8110:297:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5296,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5294,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9078,
                                                    "src": "8129:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 5295,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "8139:5:22",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "8129:15:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "436f6e747261637420706175736564",
                                                "id": 5297,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8146:17:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                },
                                                "value": "Contract paused"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                }
                                            ],
                                            "id": 5293,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "8121:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5298,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8121:43:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5299,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8121:43:22"
                                },
                                {
                                    "assignments": [
                                        5301
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 5301,
                                            "name": "length",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 5342,
                                            "src": "8175:11:22",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 5300,
                                                "name": "uint",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8175:4:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 5304,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 5302,
                                            "name": "holders",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4588,
                                            "src": "8189:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                "typeString": "address[] storage ref"
                                            }
                                        },
                                        "id": 5303,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": null,
                                        "src": "8189:14:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "8175:28:22"
                                },
                                {
                                    "body": {
                                        "id": 5340,
                                        "nodeType": "Block",
                                        "src": "8245:151:22",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5316,
                                                                "name": "holders",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4588,
                                                                "src": "8281:7:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                    "typeString": "address[] storage ref"
                                                                }
                                                            },
                                                            "id": 5318,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5317,
                                                                "name": "i",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5306,
                                                                "src": "8289:1:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "8281:10:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "hexValue": "307830",
                                                                    "id": 5320,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "number",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "8301:3:22",
                                                                    "subdenomination": null,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                        "typeString": "int_const 0"
                                                                    },
                                                                    "value": "0x0"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                        "typeString": "int_const 0"
                                                                    }
                                                                ],
                                                                "id": 5319,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "lValueRequested": false,
                                                                "nodeType": "ElementaryTypeNameExpression",
                                                                "src": "8293:7:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_address_$",
                                                                    "typeString": "type(address)"
                                                                },
                                                                "typeName": "address"
                                                            },
                                                            "id": 5321,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "8293:12:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 5323,
                                                                        "name": "holders",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 4588,
                                                                        "src": "8317:7:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                            "typeString": "address[] storage ref"
                                                                        }
                                                                    },
                                                                    "id": 5325,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 5324,
                                                                        "name": "i",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5306,
                                                                        "src": "8325:1:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "8317:10:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 5322,
                                                                "name": "balanceOf",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 456,
                                                                "src": "8307:9:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
                                                                    "typeString": "function (address) view returns (uint256)"
                                                                }
                                                            },
                                                            "id": 5326,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "8307:21:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "id": 5315,
                                                        "name": "_beforeTokenTransfer",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6207,
                                                        "src": "8260:20:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                                                            "typeString": "function (address,address,uint256)"
                                                        }
                                                    },
                                                    "id": 5327,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "8260:69:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 5328,
                                                "nodeType": "ExpressionStatement",
                                                "src": "8260:69:22"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5330,
                                                                "name": "holders",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4588,
                                                                "src": "8350:7:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                    "typeString": "address[] storage ref"
                                                                }
                                                            },
                                                            "id": 5332,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5331,
                                                                "name": "i",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5306,
                                                                "src": "8358:1:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "8350:10:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 5334,
                                                                        "name": "holders",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 4588,
                                                                        "src": "8372:7:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                            "typeString": "address[] storage ref"
                                                                        }
                                                                    },
                                                                    "id": 5336,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 5335,
                                                                        "name": "i",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5306,
                                                                        "src": "8380:1:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "8372:10:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 5333,
                                                                "name": "balanceOf",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 456,
                                                                "src": "8362:9:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
                                                                    "typeString": "function (address) view returns (uint256)"
                                                                }
                                                            },
                                                            "id": 5337,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "8362:21:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "id": 5329,
                                                        "name": "_burn",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [
                                                            3848
                                                        ],
                                                        "referencedDeclaration": 3848,
                                                        "src": "8344:5:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                            "typeString": "function (address,uint256)"
                                                        }
                                                    },
                                                    "id": 5338,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "8344:40:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 5339,
                                                "nodeType": "ExpressionStatement",
                                                "src": "8344:40:22"
                                            }
                                        ]
                                    },
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 5311,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 5309,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5306,
                                            "src": "8231:1:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "<",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "id": 5310,
                                            "name": "length",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5301,
                                            "src": "8233:6:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "8231:8:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 5341,
                                    "initializationExpression": {
                                        "assignments": [
                                            5306
                                        ],
                                        "declarations": [
                                            {
                                                "constant": false,
                                                "id": 5306,
                                                "name": "i",
                                                "nodeType": "VariableDeclaration",
                                                "scope": 5341,
                                                "src": "8218:9:22",
                                                "stateVariable": false,
                                                "storageLocation": "default",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "typeName": {
                                                    "id": 5305,
                                                    "name": "uint256",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "8218:7:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "value": null,
                                                "visibility": "internal"
                                            }
                                        ],
                                        "id": 5308,
                                        "initialValue": {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 5307,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8228:1:22",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "nodeType": "VariableDeclarationStatement",
                                        "src": "8218:11:22"
                                    },
                                    "loopExpression": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 5313,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": false,
                                            "src": "8241:3:22",
                                            "subExpression": {
                                                "argumentTypes": null,
                                                "id": 5312,
                                                "name": "i",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5306,
                                                "src": "8241:1:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 5314,
                                        "nodeType": "ExpressionStatement",
                                        "src": "8241:3:22"
                                    },
                                    "nodeType": "ForStatement",
                                    "src": "8214:182:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5343,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 5289,
                                            "name": "_msgSender",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 17,
                                            "src": "8096:10:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                "typeString": "function () view returns (address payable)"
                                            }
                                        },
                                        "id": 5290,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8096:12:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 5291,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 5288,
                                    "name": "onlyIssueManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4681,
                                    "src": "8079:16:22",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "8079:30:22"
                            }
                        ],
                        "name": "burnAll",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5287,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "8069:2:22"
                        },
                        "returnParameters": {
                            "id": 5292,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "8110:0:22"
                        },
                        "scope": 5917,
                        "src": "8053:354:22",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5363,
                            "nodeType": "Block",
                            "src": "8493:96:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5355,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5353,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9078,
                                                    "src": "8512:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 5354,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "8522:5:22",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "8512:15:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "436f6e747261637420706175736564",
                                                "id": 5356,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8529:17:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                },
                                                "value": "Contract paused"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                }
                                            ],
                                            "id": 5352,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "8504:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5357,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8504:43:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5358,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8504:43:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 5360,
                                                "name": "time",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5345,
                                                "src": "8576:4:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 5359,
                                            "name": "_scheduleSnapshot",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5999,
                                            "src": "8558:17:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                                                "typeString": "function (uint256)"
                                            }
                                        },
                                        "id": 5361,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8558:23:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5362,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8558:23:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5364,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 5348,
                                            "name": "_msgSender",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 17,
                                            "src": "8479:10:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                "typeString": "function () view returns (address payable)"
                                            }
                                        },
                                        "id": 5349,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8479:12:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 5350,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 5347,
                                    "name": "onlyIssueManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4681,
                                    "src": "8462:16:22",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "8462:30:22"
                            }
                        ],
                        "name": "scheduleSnapshot",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5346,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5345,
                                    "name": "time",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5364,
                                    "src": "8441:12:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5344,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8441:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "8440:14:22"
                        },
                        "returnParameters": {
                            "id": 5351,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "8493:0:22"
                        },
                        "scope": 5917,
                        "src": "8415:174:22",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5387,
                            "nodeType": "Block",
                            "src": "8697:110:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5378,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5376,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9078,
                                                    "src": "8716:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 5377,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "8726:5:22",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "8716:15:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "436f6e747261637420706175736564",
                                                "id": 5379,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8733:17:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                },
                                                "value": "Contract paused"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                }
                                            ],
                                            "id": 5375,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "8708:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5380,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8708:43:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5381,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8708:43:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 5383,
                                                "name": "oldTime",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5366,
                                                "src": "8782:7:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5384,
                                                "name": "newTime",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5368,
                                                "src": "8791:7:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 5382,
                                            "name": "_rescheduleSnapshot",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6062,
                                            "src": "8762:19:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                                                "typeString": "function (uint256,uint256)"
                                            }
                                        },
                                        "id": 5385,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8762:37:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5386,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8762:37:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5388,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 5371,
                                            "name": "_msgSender",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 17,
                                            "src": "8683:10:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                "typeString": "function () view returns (address payable)"
                                            }
                                        },
                                        "id": 5372,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8683:12:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 5373,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 5370,
                                    "name": "onlyIssueManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4681,
                                    "src": "8666:16:22",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "8666:30:22"
                            }
                        ],
                        "name": "rescheduleSnapshot",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5369,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5366,
                                    "name": "oldTime",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5388,
                                    "src": "8625:15:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5365,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8625:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5368,
                                    "name": "newTime",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5388,
                                    "src": "8642:15:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5367,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8642:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "8624:34:22"
                        },
                        "returnParameters": {
                            "id": 5374,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "8697:0:22"
                        },
                        "scope": 5917,
                        "src": "8597:210:22",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5408,
                            "nodeType": "Block",
                            "src": "8895:98:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5400,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5398,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9078,
                                                    "src": "8914:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 5399,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "8924:5:22",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "8914:15:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "436f6e747261637420706175736564",
                                                "id": 5401,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8931:17:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                },
                                                "value": "Contract paused"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                }
                                            ],
                                            "id": 5397,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "8906:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5402,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8906:43:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5403,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8906:43:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 5405,
                                                "name": "time",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5390,
                                                "src": "8980:4:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 5404,
                                            "name": "_unscheduleSnapshot",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6100,
                                            "src": "8960:19:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                                                "typeString": "function (uint256)"
                                            }
                                        },
                                        "id": 5406,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8960:25:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5407,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8960:25:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5409,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 5393,
                                            "name": "_msgSender",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 17,
                                            "src": "8881:10:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                "typeString": "function () view returns (address payable)"
                                            }
                                        },
                                        "id": 5394,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8881:12:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 5395,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 5392,
                                    "name": "onlyIssueManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4681,
                                    "src": "8864:16:22",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "8864:30:22"
                            }
                        ],
                        "name": "unscheduleSnapshot",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5391,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5390,
                                    "name": "time",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5409,
                                    "src": "8843:12:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5389,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8843:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "8842:14:22"
                        },
                        "returnParameters": {
                            "id": 5396,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "8895:0:22"
                        },
                        "scope": 5917,
                        "src": "8815:178:22",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5435,
                            "nodeType": "Block",
                            "src": "9115:113:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5425,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5423,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9078,
                                                    "src": "9134:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 5424,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "9144:5:22",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "9134:15:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "436f6e747261637420706175736564",
                                                "id": 5426,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "9151:17:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                },
                                                "value": "Contract paused"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                }
                                            ],
                                            "id": 5422,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "9126:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5427,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "9126:43:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5428,
                                    "nodeType": "ExpressionStatement",
                                    "src": "9126:43:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 5430,
                                                "name": "time",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5411,
                                                "src": "9198:4:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5431,
                                                "name": "votes",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5413,
                                                "src": "9204:5:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5432,
                                                "name": "ipfsLink",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5415,
                                                "src": "9211:8:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            ],
                                            "id": 5429,
                                            "name": "_createResolution",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3389,
                                            "src": "9180:17:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (uint256,bool,string memory)"
                                            }
                                        },
                                        "id": 5433,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "9180:40:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5434,
                                    "nodeType": "ExpressionStatement",
                                    "src": "9180:40:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5436,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 5418,
                                            "name": "_msgSender",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 17,
                                            "src": "9101:10:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                "typeString": "function () view returns (address payable)"
                                            }
                                        },
                                        "id": 5419,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "9101:12:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 5420,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 5417,
                                    "name": "onlyIssueManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4681,
                                    "src": "9084:16:22",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "9084:30:22"
                            }
                        ],
                        "name": "createResolution",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5416,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5411,
                                    "name": "time",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5436,
                                    "src": "9027:12:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5410,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9027:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5413,
                                    "name": "votes",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5436,
                                    "src": "9041:10:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 5412,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9041:4:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5415,
                                    "name": "ipfsLink",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5436,
                                    "src": "9053:22:22",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string"
                                    },
                                    "typeName": {
                                        "id": 5414,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9053:6:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "9026:50:22"
                        },
                        "returnParameters": {
                            "id": 5421,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "9115:0:22"
                        },
                        "scope": 5917,
                        "src": "9001:227:22",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5539,
                            "nodeType": "Block",
                            "src": "9356:735:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5448,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5446,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9078,
                                                    "src": "9375:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 5447,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "9385:5:22",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "9375:15:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "436f6e747261637420706175736564",
                                                "id": 5449,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "9392:17:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                },
                                                "value": "Contract paused"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                }
                                            ],
                                            "id": 5445,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "9367:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5450,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "9367:43:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5451,
                                    "nodeType": "ExpressionStatement",
                                    "src": "9367:43:22"
                                },
                                {
                                    "assignments": [
                                        5453
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 5453,
                                            "name": "voteCount",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 5539,
                                            "src": "9421:17:22",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 5452,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "9421:7:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 5455,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "hexValue": "30",
                                        "id": 5454,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "9441:1:22",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_rational_0_by_1",
                                            "typeString": "int_const 0"
                                        },
                                        "value": "0"
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "9421:21:22"
                                },
                                {
                                    "assignments": [
                                        5457
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 5457,
                                            "name": "totalCount",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 5539,
                                            "src": "9453:18:22",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 5456,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "9453:7:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 5459,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "hexValue": "30",
                                        "id": 5458,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "9474:1:22",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_rational_0_by_1",
                                            "typeString": "int_const 0"
                                        },
                                        "value": "0"
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "9453:22:22"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        },
                                        "id": 5474,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5463,
                                                                "name": "resolutions",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3317,
                                                                "src": "9516:11:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                                                                    "typeString": "mapping(uint256 => string storage ref)"
                                                                }
                                                            },
                                                            "id": 5465,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5464,
                                                                "name": "time",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5438,
                                                                "src": "9528:4:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "9516:17:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_string_storage",
                                                                "typeString": "string storage ref"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_string_storage",
                                                                "typeString": "string storage ref"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 5461,
                                                            "name": "abi",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9411,
                                                            "src": "9499:3:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_magic_abi",
                                                                "typeString": "abi"
                                                            }
                                                        },
                                                        "id": 5462,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "memberName": "encodePacked",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "9499:16:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                                            "typeString": "function () pure returns (bytes memory)"
                                                        }
                                                    },
                                                    "id": 5466,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "9499:35:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes_memory_ptr",
                                                        "typeString": "bytes memory"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_bytes_memory_ptr",
                                                        "typeString": "bytes memory"
                                                    }
                                                ],
                                                "id": 5460,
                                                "name": "keccak256",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9418,
                                                "src": "9489:9:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                                    "typeString": "function (bytes memory) pure returns (bytes32)"
                                                }
                                            },
                                            "id": 5467,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "9489:46:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "!=",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "hexValue": "",
                                                            "id": 5471,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "string",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "9566:2:22",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                                                "typeString": "literal_string \"\""
                                                            },
                                                            "value": ""
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                                                "typeString": "literal_string \"\""
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 5469,
                                                            "name": "abi",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9411,
                                                            "src": "9549:3:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_magic_abi",
                                                                "typeString": "abi"
                                                            }
                                                        },
                                                        "id": 5470,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "memberName": "encodePacked",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "9549:16:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                                            "typeString": "function () pure returns (bytes memory)"
                                                        }
                                                    },
                                                    "id": 5472,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "9549:20:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes_memory_ptr",
                                                        "typeString": "bytes memory"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_bytes_memory_ptr",
                                                        "typeString": "bytes memory"
                                                    }
                                                ],
                                                "id": 5468,
                                                "name": "keccak256",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9418,
                                                "src": "9539:9:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                                    "typeString": "function (bytes memory) pure returns (bytes32)"
                                                }
                                            },
                                            "id": 5473,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "9539:31:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "src": "9489:81:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": null,
                                    "id": 5534,
                                    "nodeType": "IfStatement",
                                    "src": "9486:550:22",
                                    "trueBody": {
                                        "id": 5533,
                                        "nodeType": "Block",
                                        "src": "9571:465:22",
                                        "statements": [
                                            {
                                                "condition": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "id": 5481,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 5475,
                                                            "name": "voting",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3321,
                                                            "src": "9589:6:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_string_memory_$_t_bool_$",
                                                                "typeString": "mapping(string memory => bool)"
                                                            }
                                                        },
                                                        "id": 5479,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5476,
                                                                "name": "resolutions",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3317,
                                                                "src": "9596:11:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                                                                    "typeString": "mapping(uint256 => string storage ref)"
                                                                }
                                                            },
                                                            "id": 5478,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5477,
                                                                "name": "time",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5438,
                                                                "src": "9608:4:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "9596:17:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_string_storage",
                                                                "typeString": "string storage ref"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "9589:25:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "74727565",
                                                        "id": 5480,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "bool",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "9616:4:22",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        },
                                                        "value": "true"
                                                    },
                                                    "src": "9589:31:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": null,
                                                "id": 5532,
                                                "nodeType": "IfStatement",
                                                "src": "9586:439:22",
                                                "trueBody": {
                                                    "id": 5531,
                                                    "nodeType": "Block",
                                                    "src": "9621:404:22",
                                                    "statements": [
                                                        {
                                                            "assignments": [
                                                                5483
                                                            ],
                                                            "declarations": [
                                                                {
                                                                    "constant": false,
                                                                    "id": 5483,
                                                                    "name": "length",
                                                                    "nodeType": "VariableDeclaration",
                                                                    "scope": 5531,
                                                                    "src": "9646:11:22",
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "typeName": {
                                                                        "id": 5482,
                                                                        "name": "uint",
                                                                        "nodeType": "ElementaryTypeName",
                                                                        "src": "9646:4:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                }
                                                            ],
                                                            "id": 5486,
                                                            "initialValue": {
                                                                "argumentTypes": null,
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 5484,
                                                                    "name": "holders",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 4588,
                                                                    "src": "9660:7:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                        "typeString": "address[] storage ref"
                                                                    }
                                                                },
                                                                "id": 5485,
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "length",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": null,
                                                                "src": "9660:14:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "nodeType": "VariableDeclarationStatement",
                                                            "src": "9646:28:22"
                                                        },
                                                        {
                                                            "body": {
                                                                "id": 5529,
                                                                "nodeType": "Block",
                                                                "src": "9734:276:22",
                                                                "statements": [
                                                                    {
                                                                        "condition": {
                                                                            "argumentTypes": null,
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            "id": 5504,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "leftExpression": {
                                                                                "argumentTypes": null,
                                                                                "arguments": [
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "id": 5498,
                                                                                        "name": "time",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 5438,
                                                                                        "src": "9778:4:22",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "argumentTypes": null,
                                                                                        "baseExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 5499,
                                                                                            "name": "holders",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 4588,
                                                                                            "src": "9784:7:22",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                                                "typeString": "address[] storage ref"
                                                                                            }
                                                                                        },
                                                                                        "id": 5501,
                                                                                        "indexExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 5500,
                                                                                            "name": "i",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 5488,
                                                                                            "src": "9792:1:22",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "IndexAccess",
                                                                                        "src": "9784:10:22",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "id": 5497,
                                                                                    "name": "snapshotBalanceOf",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 6137,
                                                                                    "src": "9760:17:22",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_address_$returns$_t_uint256_$",
                                                                                        "typeString": "function (uint256,address) view returns (uint256)"
                                                                                    }
                                                                                },
                                                                                "id": 5502,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "kind": "functionCall",
                                                                                "lValueRequested": false,
                                                                                "names": [],
                                                                                "nodeType": "FunctionCall",
                                                                                "src": "9760:35:22",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "nodeType": "BinaryOperation",
                                                                            "operator": ">",
                                                                            "rightExpression": {
                                                                                "argumentTypes": null,
                                                                                "hexValue": "30",
                                                                                "id": 5503,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "kind": "number",
                                                                                "lValueRequested": false,
                                                                                "nodeType": "Literal",
                                                                                "src": "9796:1:22",
                                                                                "subdenomination": null,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                                    "typeString": "int_const 0"
                                                                                },
                                                                                "value": "0"
                                                                            },
                                                                            "src": "9760:37:22",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bool",
                                                                                "typeString": "bool"
                                                                            }
                                                                        },
                                                                        "falseBody": null,
                                                                        "id": 5528,
                                                                        "nodeType": "IfStatement",
                                                                        "src": "9757:234:22",
                                                                        "trueBody": {
                                                                            "id": 5527,
                                                                            "nodeType": "Block",
                                                                            "src": "9798:193:22",
                                                                            "statements": [
                                                                                {
                                                                                    "expression": {
                                                                                        "argumentTypes": null,
                                                                                        "id": 5509,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "leftHandSide": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 5505,
                                                                                            "name": "totalCount",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 5457,
                                                                                            "src": "9825:10:22",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "nodeType": "Assignment",
                                                                                        "operator": "=",
                                                                                        "rightHandSide": {
                                                                                            "argumentTypes": null,
                                                                                            "commonType": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            },
                                                                                            "id": 5508,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "leftExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 5506,
                                                                                                "name": "totalCount",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 5457,
                                                                                                "src": "9838:10:22",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "nodeType": "BinaryOperation",
                                                                                            "operator": "+",
                                                                                            "rightExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "hexValue": "31",
                                                                                                "id": 5507,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": true,
                                                                                                "kind": "number",
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "Literal",
                                                                                                "src": "9851:1:22",
                                                                                                "subdenomination": null,
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_rational_1_by_1",
                                                                                                    "typeString": "int_const 1"
                                                                                                },
                                                                                                "value": "1"
                                                                                            },
                                                                                            "src": "9838:14:22",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "src": "9825:27:22",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    "id": 5510,
                                                                                    "nodeType": "ExpressionStatement",
                                                                                    "src": "9825:27:22"
                                                                                },
                                                                                {
                                                                                    "condition": {
                                                                                        "argumentTypes": null,
                                                                                        "commonType": {
                                                                                            "typeIdentifier": "t_bool",
                                                                                            "typeString": "bool"
                                                                                        },
                                                                                        "id": 5519,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "leftExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "baseExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 5511,
                                                                                                    "name": "votes",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 3296,
                                                                                                    "src": "9882:5:22",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$",
                                                                                                        "typeString": "mapping(uint256 => mapping(address => bool))"
                                                                                                    }
                                                                                                },
                                                                                                "id": 5513,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 5512,
                                                                                                    "name": "time",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 5438,
                                                                                                    "src": "9888:4:22",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "9882:11:22",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                                                                                                    "typeString": "mapping(address => bool)"
                                                                                                }
                                                                                            },
                                                                                            "id": 5517,
                                                                                            "indexExpression": {
                                                                                                "argumentTypes": null,
                                                                                                "baseExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 5514,
                                                                                                    "name": "holders",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 4588,
                                                                                                    "src": "9894:7:22",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                                                        "typeString": "address[] storage ref"
                                                                                                    }
                                                                                                },
                                                                                                "id": 5516,
                                                                                                "indexExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 5515,
                                                                                                    "name": "i",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 5488,
                                                                                                    "src": "9902:1:22",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "9894:10:22",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "IndexAccess",
                                                                                            "src": "9882:23:22",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_bool",
                                                                                                "typeString": "bool"
                                                                                            }
                                                                                        },
                                                                                        "nodeType": "BinaryOperation",
                                                                                        "operator": "==",
                                                                                        "rightExpression": {
                                                                                            "argumentTypes": null,
                                                                                            "hexValue": "74727565",
                                                                                            "id": 5518,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "kind": "bool",
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "Literal",
                                                                                            "src": "9907:4:22",
                                                                                            "subdenomination": null,
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_bool",
                                                                                                "typeString": "bool"
                                                                                            },
                                                                                            "value": "true"
                                                                                        },
                                                                                        "src": "9882:29:22",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bool",
                                                                                            "typeString": "bool"
                                                                                        }
                                                                                    },
                                                                                    "falseBody": null,
                                                                                    "id": 5526,
                                                                                    "nodeType": "IfStatement",
                                                                                    "src": "9879:88:22",
                                                                                    "trueBody": {
                                                                                        "expression": {
                                                                                            "argumentTypes": null,
                                                                                            "id": 5524,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "leftHandSide": {
                                                                                                "argumentTypes": null,
                                                                                                "id": 5520,
                                                                                                "name": "voteCount",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 5453,
                                                                                                "src": "9942:9:22",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "nodeType": "Assignment",
                                                                                            "operator": "=",
                                                                                            "rightHandSide": {
                                                                                                "argumentTypes": null,
                                                                                                "commonType": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                "id": 5523,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "leftExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "id": 5521,
                                                                                                    "name": "voteCount",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 5453,
                                                                                                    "src": "9954:9:22",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                "nodeType": "BinaryOperation",
                                                                                                "operator": "+",
                                                                                                "rightExpression": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexValue": "31",
                                                                                                    "id": 5522,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "kind": "number",
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "Literal",
                                                                                                    "src": "9966:1:22",
                                                                                                    "subdenomination": null,
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_rational_1_by_1",
                                                                                                        "typeString": "int_const 1"
                                                                                                    },
                                                                                                    "value": "1"
                                                                                                },
                                                                                                "src": "9954:13:22",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "src": "9942:25:22",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "id": 5525,
                                                                                        "nodeType": "ExpressionStatement",
                                                                                        "src": "9942:25:22"
                                                                                    }
                                                                                }
                                                                            ]
                                                                        }
                                                                    }
                                                                ]
                                                            },
                                                            "condition": {
                                                                "argumentTypes": null,
                                                                "commonType": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                "id": 5493,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 5491,
                                                                    "name": "i",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 5488,
                                                                    "src": "9720:1:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "nodeType": "BinaryOperation",
                                                                "operator": "<",
                                                                "rightExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 5492,
                                                                    "name": "length",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 5483,
                                                                    "src": "9722:6:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "src": "9720:8:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            },
                                                            "id": 5530,
                                                            "initializationExpression": {
                                                                "assignments": [
                                                                    5488
                                                                ],
                                                                "declarations": [
                                                                    {
                                                                        "constant": false,
                                                                        "id": 5488,
                                                                        "name": "i",
                                                                        "nodeType": "VariableDeclaration",
                                                                        "scope": 5530,
                                                                        "src": "9707:9:22",
                                                                        "stateVariable": false,
                                                                        "storageLocation": "default",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        "typeName": {
                                                                            "id": 5487,
                                                                            "name": "uint256",
                                                                            "nodeType": "ElementaryTypeName",
                                                                            "src": "9707:7:22",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "value": null,
                                                                        "visibility": "internal"
                                                                    }
                                                                ],
                                                                "id": 5490,
                                                                "initialValue": {
                                                                    "argumentTypes": null,
                                                                    "hexValue": "30",
                                                                    "id": 5489,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "number",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "9717:1:22",
                                                                    "subdenomination": null,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                        "typeString": "int_const 0"
                                                                    },
                                                                    "value": "0"
                                                                },
                                                                "nodeType": "VariableDeclarationStatement",
                                                                "src": "9707:11:22"
                                                            },
                                                            "loopExpression": {
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 5495,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "UnaryOperation",
                                                                    "operator": "++",
                                                                    "prefix": false,
                                                                    "src": "9730:3:22",
                                                                    "subExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 5494,
                                                                        "name": "i",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5488,
                                                                        "src": "9730:1:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "id": 5496,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "9730:3:22"
                                                            },
                                                            "nodeType": "ForStatement",
                                                            "src": "9703:307:22"
                                                        }
                                                    ]
                                                }
                                            }
                                        ]
                                    }
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "components": [
                                            {
                                                "argumentTypes": null,
                                                "id": 5535,
                                                "name": "totalCount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5457,
                                                "src": "10054:10:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5536,
                                                "name": "voteCount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5453,
                                                "src": "10066:9:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "id": 5537,
                                        "isConstant": false,
                                        "isInlineArray": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "TupleExpression",
                                        "src": "10053:23:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
                                            "typeString": "tuple(uint256,uint256)"
                                        }
                                    },
                                    "functionReturnParameters": 5444,
                                    "id": 5538,
                                    "nodeType": "Return",
                                    "src": "10046:30:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5540,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "countVotes",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5439,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5438,
                                    "name": "time",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5540,
                                    "src": "9260:12:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5437,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9260:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "9259:14:22"
                        },
                        "returnParameters": {
                            "id": 5444,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5441,
                                    "name": "total",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5540,
                                    "src": "9329:13:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5440,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9329:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5443,
                                    "name": "yes",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5540,
                                    "src": "9344:11:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5442,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9344:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "9328:28:22"
                        },
                        "scope": 5917,
                        "src": "9240:851:22",
                        "stateMutability": "view",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5684,
                            "nodeType": "Block",
                            "src": "10237:899:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5558,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5556,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9078,
                                                    "src": "10256:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 5557,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "10266:5:22",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "10256:15:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "436f6e747261637420706175736564",
                                                "id": 5559,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "10273:17:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                },
                                                "value": "Contract paused"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                }
                                            ],
                                            "id": 5555,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "10248:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5560,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10248:43:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5561,
                                    "nodeType": "ExpressionStatement",
                                    "src": "10248:43:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 5567,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5564,
                                                            "name": "time",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5542,
                                                            "src": "10330:4:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "id": 5563,
                                                        "name": "snapshotTotalSupply",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6160,
                                                        "src": "10310:19:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                                                            "typeString": "function (uint256) view returns (uint256)"
                                                        }
                                                    },
                                                    "id": 5565,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "10310:25:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": ">",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "30",
                                                    "id": 5566,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "10336:1:22",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0"
                                                },
                                                "src": "10310:27:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "4e6f207363686564756c656420736e617073686f7420666f756e64",
                                                "id": 5568,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "10339:29:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_977294da16bb922128a2affaf4c986f1adc8c978bb78f2ba06e80cd40b78ac83",
                                                    "typeString": "literal_string \"No scheduled snapshot found\""
                                                },
                                                "value": "No scheduled snapshot found"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_977294da16bb922128a2affaf4c986f1adc8c978bb78f2ba06e80cd40b78ac83",
                                                    "typeString": "literal_string \"No scheduled snapshot found\""
                                                }
                                            ],
                                            "id": 5562,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "10302:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5569,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10302:67:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5570,
                                    "nodeType": "ExpressionStatement",
                                    "src": "10302:67:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 5579,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5576,
                                                            "name": "wallet",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5544,
                                                            "src": "10411:6:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 5573,
                                                                    "name": "token",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 5546,
                                                                    "src": "10394:5:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 5572,
                                                                "name": "ERC20",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 821,
                                                                "src": "10388:5:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_ERC20_$821_$",
                                                                    "typeString": "type(contract ERC20)"
                                                                }
                                                            },
                                                            "id": 5574,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "10388:12:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_ERC20_$821",
                                                                "typeString": "contract ERC20"
                                                            }
                                                        },
                                                        "id": 5575,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "balanceOf",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 456,
                                                        "src": "10388:22:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                                            "typeString": "function (address) view external returns (uint256)"
                                                        }
                                                    },
                                                    "id": 5577,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "10388:30:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": ">=",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5578,
                                                    "name": "amount",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5548,
                                                    "src": "10422:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "src": "10388:40:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "496e73756666696369656e742062616c616e6365",
                                                "id": 5580,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "10430:22:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5",
                                                    "typeString": "literal_string \"Insufficient balance\""
                                                },
                                                "value": "Insufficient balance"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5",
                                                    "typeString": "literal_string \"Insufficient balance\""
                                                }
                                            ],
                                            "id": 5571,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "10380:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5581,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10380:73:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5582,
                                    "nodeType": "ExpressionStatement",
                                    "src": "10380:73:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5598,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "id": 5594,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "commonType": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "id": 5588,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "argumentTypes": null,
                                                            "id": 5584,
                                                            "name": "token",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5546,
                                                            "src": "10472:5:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": "!=",
                                                        "rightExpression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "hexValue": "307830",
                                                                    "id": 5586,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "number",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "10487:3:22",
                                                                    "subdenomination": null,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                        "typeString": "int_const 0"
                                                                    },
                                                                    "value": "0x0"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                        "typeString": "int_const 0"
                                                                    }
                                                                ],
                                                                "id": 5585,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "lValueRequested": false,
                                                                "nodeType": "ElementaryTypeNameExpression",
                                                                "src": "10479:7:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_address_$",
                                                                    "typeString": "type(address)"
                                                                },
                                                                "typeName": "address"
                                                            },
                                                            "id": 5587,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "10479:12:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        },
                                                        "src": "10472:19:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "&&",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "commonType": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "id": 5593,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "argumentTypes": null,
                                                            "id": 5589,
                                                            "name": "wallet",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5544,
                                                            "src": "10495:6:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": "!=",
                                                        "rightExpression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "hexValue": "307830",
                                                                    "id": 5591,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "number",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "10511:3:22",
                                                                    "subdenomination": null,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                        "typeString": "int_const 0"
                                                                    },
                                                                    "value": "0x0"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                        "typeString": "int_const 0"
                                                                    }
                                                                ],
                                                                "id": 5590,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "lValueRequested": false,
                                                                "nodeType": "ElementaryTypeNameExpression",
                                                                "src": "10503:7:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_address_$",
                                                                    "typeString": "type(address)"
                                                                },
                                                                "typeName": "address"
                                                            },
                                                            "id": 5592,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "10503:12:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        },
                                                        "src": "10495:20:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "src": "10472:43:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "&&",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "id": 5597,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5595,
                                                        "name": "amount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5548,
                                                        "src": "10519:6:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": ">",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "30",
                                                        "id": 5596,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "10526:1:22",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        },
                                                        "value": "0"
                                                    },
                                                    "src": "10519:8:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "src": "10472:55:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "496e76616c696420646973747269627574696f6e",
                                                "id": 5599,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "10529:22:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_1f18e2d98d68be0bd3d32bb03735442ce8c3503d5fe37bcccb91af6013bad106",
                                                    "typeString": "literal_string \"Invalid distribution\""
                                                },
                                                "value": "Invalid distribution"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_1f18e2d98d68be0bd3d32bb03735442ce8c3503d5fe37bcccb91af6013bad106",
                                                    "typeString": "literal_string \"Invalid distribution\""
                                                }
                                            ],
                                            "id": 5583,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "10464:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5600,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10464:88:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5601,
                                    "nodeType": "ExpressionStatement",
                                    "src": "10464:88:22"
                                },
                                {
                                    "assignments": [
                                        5603
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 5603,
                                            "name": "totalHoldings",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 5684,
                                            "src": "10563:21:22",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 5602,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "10563:7:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 5607,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 5605,
                                                "name": "time",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5542,
                                                "src": "10607:4:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 5604,
                                            "name": "snapshotTotalSupply",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6160,
                                            "src": "10587:19:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                                                "typeString": "function (uint256) view returns (uint256)"
                                            }
                                        },
                                        "id": 5606,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10587:25:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "10563:49:22"
                                },
                                {
                                    "assignments": [
                                        5609
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 5609,
                                            "name": "length",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 5684,
                                            "src": "10623:11:22",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 5608,
                                                "name": "uint",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "10623:4:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 5612,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 5610,
                                            "name": "holders",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4588,
                                            "src": "10637:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                "typeString": "address[] storage ref"
                                            }
                                        },
                                        "id": 5611,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": null,
                                        "src": "10637:14:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "10623:28:22"
                                },
                                {
                                    "body": {
                                        "id": 5682,
                                        "nodeType": "Block",
                                        "src": "10693:436:22",
                                        "statements": [
                                            {
                                                "assignments": [
                                                    5624
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 5624,
                                                        "name": "holding",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 5682,
                                                        "src": "10708:15:22",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "typeName": {
                                                            "id": 5623,
                                                            "name": "uint256",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "10708:7:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 5631,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5626,
                                                            "name": "time",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5542,
                                                            "src": "10744:4:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5627,
                                                                "name": "holders",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 4588,
                                                                "src": "10750:7:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                    "typeString": "address[] storage ref"
                                                                }
                                                            },
                                                            "id": 5629,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5628,
                                                                "name": "i",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5614,
                                                                "src": "10758:1:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "10750:10:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "id": 5625,
                                                        "name": "snapshotBalanceOf",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6137,
                                                        "src": "10726:17:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_address_$returns$_t_uint256_$",
                                                            "typeString": "function (uint256,address) view returns (uint256)"
                                                        }
                                                    },
                                                    "id": 5630,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "10726:35:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "10708:53:22"
                                            },
                                            {
                                                "condition": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "id": 5634,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5632,
                                                        "name": "holding",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5624,
                                                        "src": "10779:7:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": ">",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "30",
                                                        "id": 5633,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "10789:1:22",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        },
                                                        "value": "0"
                                                    },
                                                    "src": "10779:11:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": null,
                                                "id": 5681,
                                                "nodeType": "IfStatement",
                                                "src": "10776:342:22",
                                                "trueBody": {
                                                    "id": 5680,
                                                    "nodeType": "Block",
                                                    "src": "10791:327:22",
                                                    "statements": [
                                                        {
                                                            "assignments": [
                                                                5636
                                                            ],
                                                            "declarations": [
                                                                {
                                                                    "constant": false,
                                                                    "id": 5636,
                                                                    "name": "prorata",
                                                                    "nodeType": "VariableDeclaration",
                                                                    "scope": 5680,
                                                                    "src": "10810:15:22",
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "typeName": {
                                                                        "id": 5635,
                                                                        "name": "uint256",
                                                                        "nodeType": "ElementaryTypeName",
                                                                        "src": "10810:7:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                }
                                                            ],
                                                            "id": 5646,
                                                            "initialValue": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "arguments": [
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 5641,
                                                                                "name": "holding",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 5624,
                                                                                "src": "10866:7:22",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 5642,
                                                                                "name": "totalHoldings",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 5603,
                                                                                "src": "10875:13:22",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": null,
                                                                                "id": 5639,
                                                                                "name": "FixedPoint",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 7283,
                                                                                "src": "10847:10:22",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$7283_$",
                                                                                    "typeString": "type(library FixedPoint)"
                                                                                }
                                                                            },
                                                                            "id": 5640,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "divDown",
                                                                            "nodeType": "MemberAccess",
                                                                            "referencedDeclaration": 7069,
                                                                            "src": "10847:18:22",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                            }
                                                                        },
                                                                        "id": 5643,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "functionCall",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "10847:42:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 5644,
                                                                        "name": "amount",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5548,
                                                                        "src": "10891:6:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "id": 5637,
                                                                        "name": "FixedPoint",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 7283,
                                                                        "src": "10828:10:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_FixedPoint_$7283_$",
                                                                            "typeString": "type(library FixedPoint)"
                                                                        }
                                                                    },
                                                                    "id": 5638,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "mulDown",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 6978,
                                                                    "src": "10828:18:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                    }
                                                                },
                                                                "id": 5645,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "10828:70:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "nodeType": "VariableDeclarationStatement",
                                                            "src": "10810:88:22"
                                                        },
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 5651,
                                                                        "name": "wallet",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5544,
                                                                        "src": "10943:6:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 5652,
                                                                            "name": "holders",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 4588,
                                                                            "src": "10951:7:22",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                                "typeString": "address[] storage ref"
                                                                            }
                                                                        },
                                                                        "id": 5654,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 5653,
                                                                            "name": "i",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 5614,
                                                                            "src": "10959:1:22",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "10951:10:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 5655,
                                                                        "name": "prorata",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 5636,
                                                                        "src": "10963:7:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "arguments": [
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "id": 5648,
                                                                                "name": "token",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 5546,
                                                                                "src": "10923:5:22",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "id": 5647,
                                                                            "name": "ERC20",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 821,
                                                                            "src": "10917:5:22",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_type$_t_contract$_ERC20_$821_$",
                                                                                "typeString": "type(contract ERC20)"
                                                                            }
                                                                        },
                                                                        "id": 5649,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "typeConversion",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "10917:12:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_contract$_ERC20_$821",
                                                                            "typeString": "contract ERC20"
                                                                        }
                                                                    },
                                                                    "id": 5650,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "transferFrom",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 546,
                                                                    "src": "10917:25:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                                        "typeString": "function (address,address,uint256) external returns (bool)"
                                                                    }
                                                                },
                                                                "id": 5656,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "10917:54:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            },
                                                            "id": 5657,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "10917:54:22"
                                                        },
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 5667,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftHandSide": {
                                                                    "argumentTypes": null,
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "baseExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 5658,
                                                                                "name": "distributions",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 3313,
                                                                                "src": "10990:13:22",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_Distribution_$3307_storage_$_$",
                                                                                    "typeString": "mapping(uint256 => mapping(address => struct CorporateActions.Distribution storage ref))"
                                                                                }
                                                                            },
                                                                            "id": 5663,
                                                                            "indexExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 5659,
                                                                                "name": "time",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 5542,
                                                                                "src": "11004:4:22",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "10990:19:22",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Distribution_$3307_storage_$",
                                                                                "typeString": "mapping(address => struct CorporateActions.Distribution storage ref)"
                                                                            }
                                                                        },
                                                                        "id": 5664,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "baseExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 5660,
                                                                                "name": "holders",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 4588,
                                                                                "src": "11010:7:22",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                                    "typeString": "address[] storage ref"
                                                                                }
                                                                            },
                                                                            "id": 5662,
                                                                            "indexExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 5661,
                                                                                "name": "i",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 5614,
                                                                                "src": "11018:1:22",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "11010:10:22",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "10990:31:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_Distribution_$3307_storage",
                                                                            "typeString": "struct CorporateActions.Distribution storage ref"
                                                                        }
                                                                    },
                                                                    "id": 5665,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": true,
                                                                    "memberName": "token",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 3304,
                                                                    "src": "10990:37:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "nodeType": "Assignment",
                                                                "operator": "=",
                                                                "rightHandSide": {
                                                                    "argumentTypes": null,
                                                                    "id": 5666,
                                                                    "name": "token",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 5546,
                                                                    "src": "11030:5:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "src": "10990:45:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "id": 5668,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "10990:45:22"
                                                        },
                                                        {
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "id": 5678,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftHandSide": {
                                                                    "argumentTypes": null,
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "baseExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 5669,
                                                                                "name": "distributions",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 3313,
                                                                                "src": "11054:13:22",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_Distribution_$3307_storage_$_$",
                                                                                    "typeString": "mapping(uint256 => mapping(address => struct CorporateActions.Distribution storage ref))"
                                                                                }
                                                                            },
                                                                            "id": 5674,
                                                                            "indexExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 5670,
                                                                                "name": "time",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 5542,
                                                                                "src": "11068:4:22",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "11054:19:22",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Distribution_$3307_storage_$",
                                                                                "typeString": "mapping(address => struct CorporateActions.Distribution storage ref)"
                                                                            }
                                                                        },
                                                                        "id": 5675,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "baseExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 5671,
                                                                                "name": "holders",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 4588,
                                                                                "src": "11074:7:22",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                                    "typeString": "address[] storage ref"
                                                                                }
                                                                            },
                                                                            "id": 5673,
                                                                            "indexExpression": {
                                                                                "argumentTypes": null,
                                                                                "id": 5672,
                                                                                "name": "i",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 5614,
                                                                                "src": "11082:1:22",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "11074:10:22",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "11054:31:22",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_Distribution_$3307_storage",
                                                                            "typeString": "struct CorporateActions.Distribution storage ref"
                                                                        }
                                                                    },
                                                                    "id": 5676,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": true,
                                                                    "memberName": "amount",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 3306,
                                                                    "src": "11054:38:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "nodeType": "Assignment",
                                                                "operator": "=",
                                                                "rightHandSide": {
                                                                    "argumentTypes": null,
                                                                    "id": 5677,
                                                                    "name": "prorata",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 5636,
                                                                    "src": "11095:7:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "src": "11054:48:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "id": 5679,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "11054:48:22"
                                                        }
                                                    ]
                                                }
                                            }
                                        ]
                                    },
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 5619,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 5617,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5614,
                                            "src": "10679:1:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "<",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "id": 5618,
                                            "name": "length",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5609,
                                            "src": "10681:6:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "10679:8:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 5683,
                                    "initializationExpression": {
                                        "assignments": [
                                            5614
                                        ],
                                        "declarations": [
                                            {
                                                "constant": false,
                                                "id": 5614,
                                                "name": "i",
                                                "nodeType": "VariableDeclaration",
                                                "scope": 5683,
                                                "src": "10666:9:22",
                                                "stateVariable": false,
                                                "storageLocation": "default",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "typeName": {
                                                    "id": 5613,
                                                    "name": "uint256",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "10666:7:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "value": null,
                                                "visibility": "internal"
                                            }
                                        ],
                                        "id": 5616,
                                        "initialValue": {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 5615,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "10676:1:22",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "nodeType": "VariableDeclarationStatement",
                                        "src": "10666:11:22"
                                    },
                                    "loopExpression": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 5621,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": false,
                                            "src": "10689:3:22",
                                            "subExpression": {
                                                "argumentTypes": null,
                                                "id": 5620,
                                                "name": "i",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5614,
                                                "src": "10689:1:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 5622,
                                        "nodeType": "ExpressionStatement",
                                        "src": "10689:3:22"
                                    },
                                    "nodeType": "ForStatement",
                                    "src": "10662:467:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5685,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 5551,
                                            "name": "_msgSender",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 17,
                                            "src": "10223:10:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                "typeString": "function () view returns (address payable)"
                                            }
                                        },
                                        "id": 5552,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10223:12:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 5553,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 5550,
                                    "name": "onlyIssueManagerOrCustodian",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4660,
                                    "src": "10195:27:22",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "10195:41:22"
                            }
                        ],
                        "name": "payoutProrata",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5549,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5542,
                                    "name": "time",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5685,
                                    "src": "10127:12:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5541,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10127:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5544,
                                    "name": "wallet",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5685,
                                    "src": "10141:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5543,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10141:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5546,
                                    "name": "token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5685,
                                    "src": "10157:13:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5545,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10157:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5548,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5685,
                                    "src": "10172:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5547,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10172:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "10126:61:22"
                        },
                        "returnParameters": {
                            "id": 5554,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "10237:0:22"
                        },
                        "scope": 5917,
                        "src": "10104:1032:22",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5786,
                            "nodeType": "Block",
                            "src": "11286:573:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5705,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5703,
                                                    "name": "paused",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9078,
                                                    "src": "11305:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "66616c7365",
                                                    "id": 5704,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "bool",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "11315:5:22",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "value": "false"
                                                },
                                                "src": "11305:15:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "436f6e747261637420706175736564",
                                                "id": 5706,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "11322:17:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                },
                                                "value": "Contract paused"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                    "typeString": "literal_string \"Contract paused\""
                                                }
                                            ],
                                            "id": 5702,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "11297:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5707,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "11297:43:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5708,
                                    "nodeType": "ExpressionStatement",
                                    "src": "11297:43:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 5714,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5711,
                                                            "name": "time",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5687,
                                                            "src": "11379:4:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "id": 5710,
                                                        "name": "snapshotTotalSupply",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6160,
                                                        "src": "11359:19:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                                                            "typeString": "function (uint256) view returns (uint256)"
                                                        }
                                                    },
                                                    "id": 5712,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "11359:25:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": ">",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "30",
                                                    "id": 5713,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "11385:1:22",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0"
                                                },
                                                "src": "11359:27:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "4e6f207363686564756c656420736e617073686f7420666f756e64",
                                                "id": 5715,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "11388:29:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_977294da16bb922128a2affaf4c986f1adc8c978bb78f2ba06e80cd40b78ac83",
                                                    "typeString": "literal_string \"No scheduled snapshot found\""
                                                },
                                                "value": "No scheduled snapshot found"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_977294da16bb922128a2affaf4c986f1adc8c978bb78f2ba06e80cd40b78ac83",
                                                    "typeString": "literal_string \"No scheduled snapshot found\""
                                                }
                                            ],
                                            "id": 5709,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "11351:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5716,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "11351:67:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5717,
                                    "nodeType": "ExpressionStatement",
                                    "src": "11351:67:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 5726,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5723,
                                                            "name": "wallet",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5691,
                                                            "src": "11460:6:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 5720,
                                                                    "name": "token",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 5693,
                                                                    "src": "11443:5:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 5719,
                                                                "name": "ERC20",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 821,
                                                                "src": "11437:5:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_ERC20_$821_$",
                                                                    "typeString": "type(contract ERC20)"
                                                                }
                                                            },
                                                            "id": 5721,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "11437:12:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_ERC20_$821",
                                                                "typeString": "contract ERC20"
                                                            }
                                                        },
                                                        "id": 5722,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "balanceOf",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 456,
                                                        "src": "11437:22:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                                            "typeString": "function (address) view external returns (uint256)"
                                                        }
                                                    },
                                                    "id": 5724,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "11437:30:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": ">=",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5725,
                                                    "name": "amount",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5695,
                                                    "src": "11471:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "src": "11437:40:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "496e73756666696369656e742062616c616e6365",
                                                "id": 5727,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "11479:22:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5",
                                                    "typeString": "literal_string \"Insufficient balance\""
                                                },
                                                "value": "Insufficient balance"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5",
                                                    "typeString": "literal_string \"Insufficient balance\""
                                                }
                                            ],
                                            "id": 5718,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "11429:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5728,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "11429:73:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5729,
                                    "nodeType": "ExpressionStatement",
                                    "src": "11429:73:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 5736,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5732,
                                                            "name": "time",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5687,
                                                            "src": "11539:4:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5733,
                                                            "name": "holder",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5689,
                                                            "src": "11545:6:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "id": 5731,
                                                        "name": "snapshotBalanceOf",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6137,
                                                        "src": "11521:17:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_address_$returns$_t_uint256_$",
                                                            "typeString": "function (uint256,address) view returns (uint256)"
                                                        }
                                                    },
                                                    "id": 5734,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "11521:31:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": ">",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "30",
                                                    "id": 5735,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "11553:1:22",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0"
                                                },
                                                "src": "11521:33:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "4e6f74206120736563757269747920746f6b656e20686f6c646572",
                                                "id": 5737,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "11556:29:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_5cfd768dbce7681456425997d7ca342eace51b467094bcc3d4353a52248b8e0f",
                                                    "typeString": "literal_string \"Not a security token holder\""
                                                },
                                                "value": "Not a security token holder"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_5cfd768dbce7681456425997d7ca342eace51b467094bcc3d4353a52248b8e0f",
                                                    "typeString": "literal_string \"Not a security token holder\""
                                                }
                                            ],
                                            "id": 5730,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "11513:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5738,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "11513:73:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5739,
                                    "nodeType": "ExpressionStatement",
                                    "src": "11513:73:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 5755,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "id": 5751,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "commonType": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "id": 5745,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "argumentTypes": null,
                                                            "id": 5741,
                                                            "name": "token",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5693,
                                                            "src": "11605:5:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": "!=",
                                                        "rightExpression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "hexValue": "307830",
                                                                    "id": 5743,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "number",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "11620:3:22",
                                                                    "subdenomination": null,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                        "typeString": "int_const 0"
                                                                    },
                                                                    "value": "0x0"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                        "typeString": "int_const 0"
                                                                    }
                                                                ],
                                                                "id": 5742,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "lValueRequested": false,
                                                                "nodeType": "ElementaryTypeNameExpression",
                                                                "src": "11612:7:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_address_$",
                                                                    "typeString": "type(address)"
                                                                },
                                                                "typeName": "address"
                                                            },
                                                            "id": 5744,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "11612:12:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        },
                                                        "src": "11605:19:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "&&",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "commonType": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "id": 5750,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "argumentTypes": null,
                                                            "id": 5746,
                                                            "name": "wallet",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 5691,
                                                            "src": "11628:6:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": "!=",
                                                        "rightExpression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "hexValue": "307830",
                                                                    "id": 5748,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "number",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "11644:3:22",
                                                                    "subdenomination": null,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                        "typeString": "int_const 0"
                                                                    },
                                                                    "value": "0x0"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                        "typeString": "int_const 0"
                                                                    }
                                                                ],
                                                                "id": 5747,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "lValueRequested": false,
                                                                "nodeType": "ElementaryTypeNameExpression",
                                                                "src": "11636:7:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_address_$",
                                                                    "typeString": "type(address)"
                                                                },
                                                                "typeName": "address"
                                                            },
                                                            "id": 5749,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "11636:12:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        },
                                                        "src": "11628:20:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "src": "11605:43:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "&&",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "id": 5754,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5752,
                                                        "name": "amount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5695,
                                                        "src": "11652:6:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": ">",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "30",
                                                        "id": 5753,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "11659:1:22",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        },
                                                        "value": "0"
                                                    },
                                                    "src": "11652:8:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "src": "11605:55:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "496e76616c696420646973747269627574696f6e",
                                                "id": 5756,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "11662:22:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_1f18e2d98d68be0bd3d32bb03735442ce8c3503d5fe37bcccb91af6013bad106",
                                                    "typeString": "literal_string \"Invalid distribution\""
                                                },
                                                "value": "Invalid distribution"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_1f18e2d98d68be0bd3d32bb03735442ce8c3503d5fe37bcccb91af6013bad106",
                                                    "typeString": "literal_string \"Invalid distribution\""
                                                }
                                            ],
                                            "id": 5740,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "11597:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5757,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "11597:88:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5758,
                                    "nodeType": "ExpressionStatement",
                                    "src": "11597:88:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 5763,
                                                "name": "wallet",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5691,
                                                "src": "11722:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5764,
                                                "name": "holder",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5689,
                                                "src": "11730:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 5765,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5695,
                                                "src": "11738:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 5760,
                                                        "name": "token",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5693,
                                                        "src": "11702:5:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 5759,
                                                    "name": "ERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 821,
                                                    "src": "11696:5:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_ERC20_$821_$",
                                                        "typeString": "type(contract ERC20)"
                                                    }
                                                },
                                                "id": 5761,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "11696:12:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ERC20_$821",
                                                    "typeString": "contract ERC20"
                                                }
                                            },
                                            "id": 5762,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "transferFrom",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 546,
                                            "src": "11696:25:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                "typeString": "function (address,address,uint256) external returns (bool)"
                                            }
                                        },
                                        "id": 5766,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "11696:49:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 5767,
                                    "nodeType": "ExpressionStatement",
                                    "src": "11696:49:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 5775,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5768,
                                                        "name": "distributions",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3313,
                                                        "src": "11756:13:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_Distribution_$3307_storage_$_$",
                                                            "typeString": "mapping(uint256 => mapping(address => struct CorporateActions.Distribution storage ref))"
                                                        }
                                                    },
                                                    "id": 5771,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5769,
                                                        "name": "time",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5687,
                                                        "src": "11770:4:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "11756:19:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Distribution_$3307_storage_$",
                                                        "typeString": "mapping(address => struct CorporateActions.Distribution storage ref)"
                                                    }
                                                },
                                                "id": 5772,
                                                "indexExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5770,
                                                    "name": "holder",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5689,
                                                    "src": "11776:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "11756:27:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Distribution_$3307_storage",
                                                    "typeString": "struct CorporateActions.Distribution storage ref"
                                                }
                                            },
                                            "id": 5773,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberName": "token",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 3304,
                                            "src": "11756:33:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 5774,
                                            "name": "token",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5693,
                                            "src": "11792:5:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "11756:41:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 5776,
                                    "nodeType": "ExpressionStatement",
                                    "src": "11756:41:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 5784,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5777,
                                                        "name": "distributions",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3313,
                                                        "src": "11808:13:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_Distribution_$3307_storage_$_$",
                                                            "typeString": "mapping(uint256 => mapping(address => struct CorporateActions.Distribution storage ref))"
                                                        }
                                                    },
                                                    "id": 5780,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 5778,
                                                        "name": "time",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5687,
                                                        "src": "11822:4:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "11808:19:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Distribution_$3307_storage_$",
                                                        "typeString": "mapping(address => struct CorporateActions.Distribution storage ref)"
                                                    }
                                                },
                                                "id": 5781,
                                                "indexExpression": {
                                                    "argumentTypes": null,
                                                    "id": 5779,
                                                    "name": "holder",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5689,
                                                    "src": "11828:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "11808:27:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Distribution_$3307_storage",
                                                    "typeString": "struct CorporateActions.Distribution storage ref"
                                                }
                                            },
                                            "id": 5782,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberName": "amount",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 3306,
                                            "src": "11808:34:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 5783,
                                            "name": "amount",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5695,
                                            "src": "11845:6:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "11808:43:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 5785,
                                    "nodeType": "ExpressionStatement",
                                    "src": "11808:43:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5787,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 5698,
                                            "name": "_msgSender",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 17,
                                            "src": "11272:10:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                "typeString": "function () view returns (address payable)"
                                            }
                                        },
                                        "id": 5699,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "11272:12:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 5700,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 5697,
                                    "name": "onlyIssueManagerOrCustodian",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4660,
                                    "src": "11244:27:22",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "11244:41:22"
                            }
                        ],
                        "name": "payout",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5696,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5687,
                                    "name": "time",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5787,
                                    "src": "11160:12:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5686,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11160:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5689,
                                    "name": "holder",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5787,
                                    "src": "11174:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5688,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11174:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5691,
                                    "name": "wallet",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5787,
                                    "src": "11190:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5690,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11190:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5693,
                                    "name": "token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5787,
                                    "src": "11206:13:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5692,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11206:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 5695,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5787,
                                    "src": "11221:14:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 5694,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11221:7:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "11159:77:22"
                        },
                        "returnParameters": {
                            "id": 5701,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "11286:0:22"
                        },
                        "scope": 5917,
                        "src": "11144:715:22",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5795,
                            "nodeType": "Block",
                            "src": "11984:48:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 5791,
                                                    "name": "msg",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9424,
                                                    "src": "12013:3:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_message",
                                                        "typeString": "msg"
                                                    }
                                                },
                                                "id": 5792,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "sender",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": null,
                                                "src": "12013:10:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            ],
                                            "id": 5790,
                                            "name": "_withdrawFundsFor",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5846,
                                            "src": "11995:17:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                                                "typeString": "function (address)"
                                            }
                                        },
                                        "id": 5793,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "11995:29:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5794,
                                    "nodeType": "ExpressionStatement",
                                    "src": "11995:29:22"
                                }
                            ]
                        },
                        "documentation": "@notice Withdraws all available funds for a token holder\r",
                        "id": 5796,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "withdrawFunds",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5788,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "11972:2:22"
                        },
                        "returnParameters": {
                            "id": 5789,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "11984:0:22"
                        },
                        "scope": 5917,
                        "src": "11950:82:22",
                        "stateMutability": "nonpayable",
                        "superFunction": 6640,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 5821,
                            "nodeType": "Block",
                            "src": "12172:117:22",
                            "statements": [
                                {
                                    "body": {
                                        "id": 5819,
                                        "nodeType": "Block",
                                        "src": "12227:55:22",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5814,
                                                                "name": "owners",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5799,
                                                                "src": "12260:6:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                    "typeString": "address[] calldata"
                                                                }
                                                            },
                                                            "id": 5816,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 5815,
                                                                "name": "i",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5803,
                                                                "src": "12267:1:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "12260:9:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "id": 5813,
                                                        "name": "_withdrawFundsFor",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5846,
                                                        "src": "12242:17:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                                                            "typeString": "function (address)"
                                                        }
                                                    },
                                                    "id": 5817,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "12242:28:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 5818,
                                                "nodeType": "ExpressionStatement",
                                                "src": "12242:28:22"
                                            }
                                        ]
                                    },
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 5809,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 5806,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5803,
                                            "src": "12203:1:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "<",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 5807,
                                                "name": "owners",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5799,
                                                "src": "12207:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                    "typeString": "address[] calldata"
                                                }
                                            },
                                            "id": 5808,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "length",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": null,
                                            "src": "12207:13:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "12203:17:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 5820,
                                    "initializationExpression": {
                                        "assignments": [
                                            5803
                                        ],
                                        "declarations": [
                                            {
                                                "constant": false,
                                                "id": 5803,
                                                "name": "i",
                                                "nodeType": "VariableDeclaration",
                                                "scope": 5820,
                                                "src": "12188:9:22",
                                                "stateVariable": false,
                                                "storageLocation": "default",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "typeName": {
                                                    "id": 5802,
                                                    "name": "uint256",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "12188:7:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "value": null,
                                                "visibility": "internal"
                                            }
                                        ],
                                        "id": 5805,
                                        "initialValue": {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 5804,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "12200:1:22",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "nodeType": "VariableDeclarationStatement",
                                        "src": "12188:13:22"
                                    },
                                    "loopExpression": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 5811,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": false,
                                            "src": "12222:3:22",
                                            "subExpression": {
                                                "argumentTypes": null,
                                                "id": 5810,
                                                "name": "i",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5803,
                                                "src": "12222:1:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 5812,
                                        "nodeType": "ExpressionStatement",
                                        "src": "12222:3:22"
                                    },
                                    "nodeType": "ForStatement",
                                    "src": "12183:99:22"
                                }
                            ]
                        },
                        "documentation": "@notice Withdraws funds for a set of token holders\r",
                        "id": 5822,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "pushFunds",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5800,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5799,
                                    "name": "owners",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5822,
                                    "src": "12136:25:22",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                        "typeString": "address[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 5797,
                                            "name": "address",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "12136:7:22",
                                            "stateMutability": "nonpayable",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "id": 5798,
                                        "length": null,
                                        "nodeType": "ArrayTypeName",
                                        "src": "12136:9:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                            "typeString": "address[]"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "12135:27:22"
                        },
                        "returnParameters": {
                            "id": 5801,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "12172:0:22"
                        },
                        "scope": 5917,
                        "src": "12117:172:22",
                        "stateMutability": "nonpayable",
                        "superFunction": 6687,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 5845,
                            "nodeType": "Block",
                            "src": "12431:252:22",
                            "statements": [
                                {
                                    "assignments": [
                                        5828
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 5828,
                                            "name": "withdrawableFunds",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 5845,
                                            "src": "12442:25:22",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 5827,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "12442:7:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 5832,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 5830,
                                                "name": "owner",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 5824,
                                                "src": "12490:5:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "id": 5829,
                                            "name": "_prepareWithdrawFor",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3682,
                                            "src": "12470:19:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$",
                                                "typeString": "function (address) returns (uint256)"
                                            }
                                        },
                                        "id": 5831,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "12470:26:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "12442:54:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 5836,
                                                        "name": "owner",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5824,
                                                        "src": "12551:5:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 5837,
                                                        "name": "withdrawableFunds",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5828,
                                                        "src": "12558:17:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 5834,
                                                        "name": "fundsToken",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4602,
                                                        "src": "12531:10:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_IERC20_$890",
                                                            "typeString": "contract IERC20"
                                                        }
                                                    },
                                                    "id": 5835,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "transfer",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 844,
                                                    "src": "12531:19:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                        "typeString": "function (address,uint256) external returns (bool)"
                                                    }
                                                },
                                                "id": 5838,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "12531:45:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "4644542e776974686472617746756e64733a205452414e534645525f4641494c4544",
                                                "id": 5839,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "12591:36:22",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_5a9a5fc4e491cf1970553dfd93cadcc57c8b619630ebaa21058a858d63329bf4",
                                                    "typeString": "literal_string \"FDT.withdrawFunds: TRANSFER_FAILED\""
                                                },
                                                "value": "FDT.withdrawFunds: TRANSFER_FAILED"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_5a9a5fc4e491cf1970553dfd93cadcc57c8b619630ebaa21058a858d63329bf4",
                                                    "typeString": "literal_string \"FDT.withdrawFunds: TRANSFER_FAILED\""
                                                }
                                            ],
                                            "id": 5833,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                9427,
                                                9428
                                            ],
                                            "referencedDeclaration": 9428,
                                            "src": "12509:7:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 5840,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "12509:129:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5841,
                                    "nodeType": "ExpressionStatement",
                                    "src": "12509:129:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 5842,
                                            "name": "_updateFundsTokenBalance",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5894,
                                            "src": "12649:24:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_int256_$",
                                                "typeString": "function () returns (int256)"
                                            }
                                        },
                                        "id": 5843,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "12649:26:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                        }
                                    },
                                    "id": 5844,
                                    "nodeType": "ExpressionStatement",
                                    "src": "12649:26:22"
                                }
                            ]
                        },
                        "documentation": "@notice Withdraws all available funds for a token holder\r",
                        "id": 5846,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "_withdrawFundsFor",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5825,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5824,
                                    "name": "owner",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5846,
                                    "src": "12407:13:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 5823,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "12407:7:22",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "12406:15:22"
                        },
                        "returnParameters": {
                            "id": 5826,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "12431:0:22"
                        },
                        "scope": 5917,
                        "src": "12380:303:22",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 5865,
                            "nodeType": "Block",
                            "src": "12852:162:22",
                            "statements": [
                                {
                                    "assignments": [
                                        5850
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 5850,
                                            "name": "newFunds",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 5865,
                                            "src": "12863:15:22",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_int256",
                                                "typeString": "int256"
                                            },
                                            "typeName": {
                                                "id": 5849,
                                                "name": "int256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "12863:6:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_int256",
                                                    "typeString": "int256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 5853,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 5851,
                                            "name": "_updateFundsTokenBalance",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5894,
                                            "src": "12881:24:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_int256_$",
                                                "typeString": "function () returns (int256)"
                                            }
                                        },
                                        "id": 5852,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "12881:26:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "12863:44:22"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                        },
                                        "id": 5856,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 5854,
                                            "name": "newFunds",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5850,
                                            "src": "12924:8:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_int256",
                                                "typeString": "int256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 5855,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "12935:1:22",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "src": "12924:12:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": null,
                                    "id": 5864,
                                    "nodeType": "IfStatement",
                                    "src": "12920:87:22",
                                    "trueBody": {
                                        "id": 5863,
                                        "nodeType": "Block",
                                        "src": "12938:69:22",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "arguments": [],
                                                            "expression": {
                                                                "argumentTypes": [],
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 5858,
                                                                    "name": "newFunds",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 5850,
                                                                    "src": "12970:8:22",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_int256",
                                                                        "typeString": "int256"
                                                                    }
                                                                },
                                                                "id": 5859,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "toUint256Safe",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 8877,
                                                                "src": "12970:22:22",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$bound_to$_t_int256_$",
                                                                    "typeString": "function (int256) pure returns (uint256)"
                                                                }
                                                            },
                                                            "id": 5860,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "12970:24:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "id": 5857,
                                                        "name": "_distributeFunds",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 3650,
                                                        "src": "12953:16:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                                                            "typeString": "function (uint256)"
                                                        }
                                                    },
                                                    "id": 5861,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "12953:42:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 5862,
                                                "nodeType": "ExpressionStatement",
                                                "src": "12953:42:22"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "documentation": "@notice Register a payment of funds in tokens. May be called directly after a deposit is made.\r",
                        "id": 5866,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "updateFundsReceived",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5847,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "12840:2:22"
                        },
                        "returnParameters": {
                            "id": 5848,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "12852:0:22"
                        },
                        "scope": 5917,
                        "src": "12812:202:22",
                        "stateMutability": "nonpayable",
                        "superFunction": 6690,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 5893,
                            "nodeType": "Block",
                            "src": "13328:216:22",
                            "statements": [
                                {
                                    "assignments": [
                                        5872
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 5872,
                                            "name": "prevFundsTokenBalance",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 5893,
                                            "src": "13339:29:22",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 5871,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "13339:7:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 5874,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "id": 5873,
                                        "name": "fundsTokenBalance",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4604,
                                        "src": "13371:17:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "13339:49:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 5882,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 5875,
                                            "name": "fundsTokenBalance",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4604,
                                            "src": "13401:17:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 5879,
                                                            "name": "this",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9502,
                                                            "src": "13450:4:22",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_Security_$5917",
                                                                "typeString": "contract Security"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_contract$_Security_$5917",
                                                                "typeString": "contract Security"
                                                            }
                                                        ],
                                                        "id": 5878,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "nodeType": "ElementaryTypeNameExpression",
                                                        "src": "13442:7:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_address_$",
                                                            "typeString": "type(address)"
                                                        },
                                                        "typeName": "address"
                                                    },
                                                    "id": 5880,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "typeConversion",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "13442:13:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 5876,
                                                    "name": "fundsToken",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 4602,
                                                    "src": "13421:10:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_IERC20_$890",
                                                        "typeString": "contract IERC20"
                                                    }
                                                },
                                                "id": 5877,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "balanceOf",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 835,
                                                "src": "13421:20:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                                    "typeString": "function (address) view external returns (uint256)"
                                                }
                                            },
                                            "id": 5881,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "13421:35:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "13401:55:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 5883,
                                    "nodeType": "ExpressionStatement",
                                    "src": "13401:55:22"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 5889,
                                                        "name": "prevFundsTokenBalance",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 5872,
                                                        "src": "13513:21:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "id": 5888,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "13506:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_int256_$",
                                                        "typeString": "type(int256)"
                                                    },
                                                    "typeName": "int256"
                                                },
                                                "id": 5890,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "13506:29:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_int256",
                                                    "typeString": "int256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_int256",
                                                    "typeString": "int256"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 5885,
                                                        "name": "fundsTokenBalance",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4604,
                                                        "src": "13483:17:22",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "id": 5884,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "13476:6:22",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_int256_$",
                                                        "typeString": "type(int256)"
                                                    },
                                                    "typeName": "int256"
                                                },
                                                "id": 5886,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "13476:25:22",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_int256",
                                                    "typeString": "int256"
                                                }
                                            },
                                            "id": 5887,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "sub",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 9034,
                                            "src": "13476:29:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                                                "typeString": "function (int256,int256) pure returns (int256)"
                                            }
                                        },
                                        "id": 5891,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "13476:60:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                        }
                                    },
                                    "functionReturnParameters": 5870,
                                    "id": 5892,
                                    "nodeType": "Return",
                                    "src": "13469:67:22"
                                }
                            ]
                        },
                        "documentation": "@dev Updates the current funds token balance\r\nand returns the difference of new and previous funds token balances\r\n@return A int256 representing the difference of the new and previous funds token balance\r",
                        "id": 5894,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "_updateFundsTokenBalance",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5867,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "13299:2:22"
                        },
                        "returnParameters": {
                            "id": 5870,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 5869,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 5894,
                                    "src": "13320:6:22",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                    },
                                    "typeName": {
                                        "id": 5868,
                                        "name": "int256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "13320:6:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "13319:8:22"
                        },
                        "scope": 5917,
                        "src": "13266:278:22",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 5904,
                            "nodeType": "Block",
                            "src": "13606:27:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 5901,
                                            "name": "_pause",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9093,
                                            "src": "13617:6:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                                                "typeString": "function ()"
                                            }
                                        },
                                        "id": 5902,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "13617:8:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5903,
                                    "nodeType": "ExpressionStatement",
                                    "src": "13617:8:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5905,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 5897,
                                            "name": "_msgSender",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 17,
                                            "src": "13593:10:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                "typeString": "function () view returns (address payable)"
                                            }
                                        },
                                        "id": 5898,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "13593:12:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 5899,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 5896,
                                    "name": "onlyIssueManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4681,
                                    "src": "13576:16:22",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "13576:30:22"
                            }
                        ],
                        "name": "pause",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5895,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "13566:2:22"
                        },
                        "returnParameters": {
                            "id": 5900,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "13606:0:22"
                        },
                        "scope": 5917,
                        "src": "13552:81:22",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 5915,
                            "nodeType": "Block",
                            "src": "13697:29:22",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 5912,
                                            "name": "_unpause",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9104,
                                            "src": "13708:8:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                                                "typeString": "function ()"
                                            }
                                        },
                                        "id": 5913,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "13708:10:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 5914,
                                    "nodeType": "ExpressionStatement",
                                    "src": "13708:10:22"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 5916,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 5908,
                                            "name": "_msgSender",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 17,
                                            "src": "13684:10:22",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                                "typeString": "function () view returns (address payable)"
                                            }
                                        },
                                        "id": 5909,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "13684:12:22",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 5910,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 5907,
                                    "name": "onlyIssueManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4681,
                                    "src": "13667:16:22",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "13667:30:22"
                            }
                        ],
                        "name": "unpause",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 5906,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "13657:2:22"
                        },
                        "returnParameters": {
                            "id": 5911,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "13697:0:22"
                        },
                        "scope": 5917,
                        "src": "13641:85:22",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    }
                ],
                "scope": 5918,
                "src": "406:13325:22"
            }
        ],
        "src": "106:13629:22"
    },
    "legacyAST": {
        "attributes": {
            "absolutePath": "project:/contracts/Security.sol",
            "exportedSymbols": {
                "Security": [
                    5917
                ]
            }
        },
        "children": [
            {
                "attributes": {
                    "literals": [
                        "solidity",
                        "0.5",
                        ".7"
                    ]
                },
                "id": 4563,
                "name": "PragmaDirective",
                "src": "106:22:22"
            },
            {
                "attributes": {
                    "SourceUnit": 3571,
                    "absolutePath": "project:/contracts/CorporateActions.sol",
                    "file": "./CorporateActions.sol",
                    "scope": 5918,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 4564,
                "name": "ImportDirective",
                "src": "132:32:22"
            },
            {
                "attributes": {
                    "SourceUnit": 9114,
                    "absolutePath": "project:/contracts/utilities/Pausable.sol",
                    "file": "./utilities/Pausable.sol",
                    "scope": 5918,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 4565,
                "name": "ImportDirective",
                "src": "166:34:22"
            },
            {
                "attributes": {
                    "SourceUnit": 6629,
                    "absolutePath": "project:/contracts/interfaces/IFactory.sol",
                    "file": "./interfaces/IFactory.sol",
                    "scope": 5918,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 4566,
                "name": "ImportDirective",
                "src": "202:35:22"
            },
            {
                "attributes": {
                    "SourceUnit": 6692,
                    "absolutePath": "project:/contracts/interfaces/ISecurity.sol",
                    "file": "./interfaces/ISecurity.sol",
                    "scope": 5918,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 4567,
                "name": "ImportDirective",
                "src": "239:36:22"
            },
            {
                "attributes": {
                    "SourceUnit": 6874,
                    "absolutePath": "project:/contracts/interfaces/VerifiedClient.sol",
                    "file": "./interfaces/VerifiedClient.sol",
                    "scope": 5918,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 4568,
                "name": "ImportDirective",
                "src": "277:41:22"
            },
            {
                "attributes": {
                    "SourceUnit": 410,
                    "absolutePath": "@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol",
                    "file": "@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol",
                    "scope": 5918,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 4569,
                "name": "ImportDirective",
                "src": "320:82:22"
            },
            {
                "attributes": {
                    "contractDependencies": [
                        29,
                        409,
                        821,
                        890,
                        1042,
                        3570,
                        3849,
                        6506,
                        6653,
                        6691,
                        9113
                    ],
                    "contractKind": "contract",
                    "documentation": null,
                    "fullyImplemented": true,
                    "linearizedBaseContracts": [
                        5917,
                        3570,
                        6506,
                        3849,
                        821,
                        890,
                        9113,
                        409,
                        29,
                        1042,
                        6653,
                        6691
                    ],
                    "name": "Security",
                    "scope": 5918
                },
                "children": [
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "ISecurity",
                                    "referencedDeclaration": 6691,
                                    "type": "contract ISecurity"
                                },
                                "id": 4570,
                                "name": "UserDefinedTypeName",
                                "src": "427:9:22"
                            }
                        ],
                        "id": 4571,
                        "name": "InheritanceSpecifier",
                        "src": "427:9:22"
                    },
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "Ownable",
                                    "referencedDeclaration": 409,
                                    "type": "contract Ownable"
                                },
                                "id": 4572,
                                "name": "UserDefinedTypeName",
                                "src": "438:7:22"
                            }
                        ],
                        "id": 4573,
                        "name": "InheritanceSpecifier",
                        "src": "438:7:22"
                    },
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "Pausable",
                                    "referencedDeclaration": 9113,
                                    "type": "contract Pausable"
                                },
                                "id": 4574,
                                "name": "UserDefinedTypeName",
                                "src": "447:8:22"
                            }
                        ],
                        "id": 4575,
                        "name": "InheritanceSpecifier",
                        "src": "447:8:22"
                    },
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "CorporateActions",
                                    "referencedDeclaration": 3570,
                                    "type": "contract CorporateActions"
                                },
                                "id": 4576,
                                "name": "UserDefinedTypeName",
                                "src": "457:16:22"
                            }
                        ],
                        "id": 4577,
                        "name": "InheritanceSpecifier",
                        "src": "457:16:22"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "_name",
                            "scope": 5917,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "string",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "string",
                                    "type": "string"
                                },
                                "id": 4578,
                                "name": "ElementaryTypeName",
                                "src": "516:6:22"
                            }
                        ],
                        "id": 4579,
                        "name": "VariableDeclaration",
                        "src": "516:20:22"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "_symbol",
                            "scope": 5917,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "string",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "string",
                                    "type": "string"
                                },
                                "id": 4580,
                                "name": "ElementaryTypeName",
                                "src": "543:6:22"
                            }
                        ],
                        "id": 4581,
                        "name": "VariableDeclaration",
                        "src": "543:22:22"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "_client",
                            "scope": 5917,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "contract VerifiedClient",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "VerifiedClient",
                                    "referencedDeclaration": 6873,
                                    "type": "contract VerifiedClient"
                                },
                                "id": 4582,
                                "name": "UserDefinedTypeName",
                                "src": "574:14:22"
                            }
                        ],
                        "id": 4583,
                        "name": "VariableDeclaration",
                        "src": "574:30:22"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "_issuer",
                            "scope": 5917,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "address",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "address",
                                    "stateMutability": "nonpayable",
                                    "type": "address"
                                },
                                "id": 4584,
                                "name": "ElementaryTypeName",
                                "src": "689:7:22"
                            }
                        ],
                        "id": 4585,
                        "name": "VariableDeclaration",
                        "src": "689:23:22"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "holders",
                            "scope": 5917,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "address[]",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "length": null,
                                    "type": "address[]"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "stateMutability": "nonpayable",
                                            "type": "address"
                                        },
                                        "id": 4586,
                                        "name": "ElementaryTypeName",
                                        "src": "758:7:22"
                                    }
                                ],
                                "id": 4587,
                                "name": "ArrayTypeName",
                                "src": "758:9:22"
                            }
                        ],
                        "id": 4588,
                        "name": "VariableDeclaration",
                        "src": "758:25:22"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "holderIndex",
                            "scope": 5917,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => uint256)",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => uint256)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 4589,
                                        "name": "ElementaryTypeName",
                                        "src": "832:7:22"
                                    },
                                    {
                                        "attributes": {
                                            "name": "uint256",
                                            "type": "uint256"
                                        },
                                        "id": 4590,
                                        "name": "ElementaryTypeName",
                                        "src": "843:7:22"
                                    }
                                ],
                                "id": 4591,
                                "name": "Mapping",
                                "src": "824:27:22"
                            }
                        ],
                        "id": 4592,
                        "name": "VariableDeclaration",
                        "src": "824:47:22"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "froze",
                            "scope": 5917,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => uint256)",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => uint256)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 4593,
                                        "name": "ElementaryTypeName",
                                        "src": "976:7:22"
                                    },
                                    {
                                        "attributes": {
                                            "name": "uint256",
                                            "type": "uint256"
                                        },
                                        "id": 4594,
                                        "name": "ElementaryTypeName",
                                        "src": "987:7:22"
                                    }
                                ],
                                "id": 4595,
                                "name": "Mapping",
                                "src": "968:27:22"
                            }
                        ],
                        "id": 4596,
                        "name": "VariableDeclaration",
                        "src": "968:41:22"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "whitelisted",
                            "scope": 5917,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => uint256)",
                            "value": null,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => uint256)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 4597,
                                        "name": "ElementaryTypeName",
                                        "src": "1103:7:22"
                                    },
                                    {
                                        "attributes": {
                                            "name": "uint256",
                                            "type": "uint256"
                                        },
                                        "id": 4598,
                                        "name": "ElementaryTypeName",
                                        "src": "1114:7:22"
                                    }
                                ],
                                "id": 4599,
                                "name": "Mapping",
                                "src": "1095:27:22"
                            }
                        ],
                        "id": 4600,
                        "name": "VariableDeclaration",
                        "src": "1095:47:22"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "fundsToken",
                            "scope": 5917,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "contract IERC20",
                            "value": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "IERC20",
                                    "referencedDeclaration": 890,
                                    "type": "contract IERC20"
                                },
                                "id": 4601,
                                "name": "UserDefinedTypeName",
                                "src": "1226:6:22"
                            }
                        ],
                        "id": 4602,
                        "name": "VariableDeclaration",
                        "src": "1226:24:22"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "name": "fundsTokenBalance",
                            "scope": 5917,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "uint256",
                            "value": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "uint256",
                                    "type": "uint256"
                                },
                                "id": 4603,
                                "name": "ElementaryTypeName",
                                "src": "1337:7:22"
                            }
                        ],
                        "id": 4604,
                        "name": "VariableDeclaration",
                        "src": "1337:32:22"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "documentation": "@dev Emitted when an address is frozen.\r",
                            "name": "Freeze"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "name": "enforcer",
                                            "scope": 4610,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4605,
                                                "name": "ElementaryTypeName",
                                                "src": "1457:7:22"
                                            }
                                        ],
                                        "id": 4606,
                                        "name": "VariableDeclaration",
                                        "src": "1457:24:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "name": "owner",
                                            "scope": 4610,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4607,
                                                "name": "ElementaryTypeName",
                                                "src": "1483:7:22"
                                            }
                                        ],
                                        "id": 4608,
                                        "name": "VariableDeclaration",
                                        "src": "1483:21:22"
                                    }
                                ],
                                "id": 4609,
                                "name": "ParameterList",
                                "src": "1456:49:22"
                            }
                        ],
                        "id": 4610,
                        "name": "EventDefinition",
                        "src": "1444:62:22"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "documentation": "@dev Emitted when an address is unfrozen.\r",
                            "name": "Unfreeze"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "name": "enforcer",
                                            "scope": 4616,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4611,
                                                "name": "ElementaryTypeName",
                                                "src": "1597:7:22"
                                            }
                                        ],
                                        "id": 4612,
                                        "name": "VariableDeclaration",
                                        "src": "1597:24:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "name": "owner",
                                            "scope": 4616,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4613,
                                                "name": "ElementaryTypeName",
                                                "src": "1623:7:22"
                                            }
                                        ],
                                        "id": 4614,
                                        "name": "VariableDeclaration",
                                        "src": "1623:21:22"
                                    }
                                ],
                                "id": 4615,
                                "name": "ParameterList",
                                "src": "1596:49:22"
                            }
                        ],
                        "id": 4616,
                        "name": "EventDefinition",
                        "src": "1582:64:22"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "documentation": null,
                            "name": "Burn"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "name": "owner",
                                            "scope": 4622,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4617,
                                                "name": "ElementaryTypeName",
                                                "src": "1665:7:22"
                                            }
                                        ],
                                        "id": 4618,
                                        "name": "VariableDeclaration",
                                        "src": "1665:21:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "amount",
                                            "scope": 4622,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 4619,
                                                "name": "ElementaryTypeName",
                                                "src": "1688:7:22"
                                            }
                                        ],
                                        "id": 4620,
                                        "name": "VariableDeclaration",
                                        "src": "1688:14:22"
                                    }
                                ],
                                "id": 4621,
                                "name": "ParameterList",
                                "src": "1664:39:22"
                            }
                        ],
                        "id": 4622,
                        "name": "EventDefinition",
                        "src": "1654:50:22"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "documentation": null,
                            "name": "Mint"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "name": "beneficiary",
                                            "scope": 4628,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4623,
                                                "name": "ElementaryTypeName",
                                                "src": "1723:7:22"
                                            }
                                        ],
                                        "id": 4624,
                                        "name": "VariableDeclaration",
                                        "src": "1723:27:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "name": "amount",
                                            "scope": 4628,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 4625,
                                                "name": "ElementaryTypeName",
                                                "src": "1752:7:22"
                                            }
                                        ],
                                        "id": 4626,
                                        "name": "VariableDeclaration",
                                        "src": "1752:14:22"
                                    }
                                ],
                                "id": 4627,
                                "name": "ParameterList",
                                "src": "1722:45:22"
                            }
                        ],
                        "id": 4628,
                        "name": "EventDefinition",
                        "src": "1712:56:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "name": "onlyIssueManagerOrCustodian",
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "sender",
                                            "scope": 4660,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4629,
                                                "name": "ElementaryTypeName",
                                                "src": "1813:7:22"
                                            }
                                        ],
                                        "id": 4630,
                                        "name": "VariableDeclaration",
                                        "src": "1813:14:22"
                                    }
                                ],
                                "id": 4631,
                                "name": "ParameterList",
                                "src": "1812:16:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                4633,
                                                null,
                                                null
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "role",
                                                    "scope": 4659,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "bytes32",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes32",
                                                            "type": "bytes32"
                                                        },
                                                        "id": 4632,
                                                        "name": "ElementaryTypeName",
                                                        "src": "1840:7:22"
                                                    }
                                                ],
                                                "id": 4633,
                                                "name": "VariableDeclaration",
                                                "src": "1840:12:22"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple(bytes32,bytes32,bytes32)",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getRole",
                                                            "referencedDeclaration": 6731,
                                                            "type": "function (address) view external returns (bytes32,bytes32,bytes32)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4583,
                                                                    "type": "contract VerifiedClient",
                                                                    "value": "_client"
                                                                },
                                                                "id": 4634,
                                                                "name": "Identifier",
                                                                "src": "1860:7:22"
                                                            }
                                                        ],
                                                        "id": 4635,
                                                        "name": "MemberAccess",
                                                        "src": "1860:15:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4630,
                                                            "type": "address",
                                                            "value": "sender"
                                                        },
                                                        "id": 4636,
                                                        "name": "Identifier",
                                                        "src": "1876:6:22"
                                                    }
                                                ],
                                                "id": 4637,
                                                "name": "FunctionCall",
                                                "src": "1860:23:22"
                                            }
                                        ],
                                        "id": 4638,
                                        "name": "VariableDeclarationStatement",
                                        "src": "1839:44:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_357da7ad9ae224b030c41ccc448abd5e79aed72af649c63aa422e9d75d1cef8a",
                                                                    "typeString": "literal_string \"Not issuer or custodian\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 4639,
                                                        "name": "Identifier",
                                                        "src": "1894:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "||",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "address",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "getDP",
                                                                                    "referencedDeclaration": 6627,
                                                                                    "type": "function (address) view external returns (address)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "contract IFactory",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6628,
                                                                                                    "type": "type(contract IFactory)",
                                                                                                    "value": "IFactory"
                                                                                                },
                                                                                                "id": 4640,
                                                                                                "name": "Identifier",
                                                                                                "src": "1902:8:22"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "arguments": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "type": "address",
                                                                                                    "type_conversion": false
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 328,
                                                                                                            "type": "function () view returns (address)",
                                                                                                            "value": "owner"
                                                                                                        },
                                                                                                        "id": 4641,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "1911:5:22"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4642,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "1911:7:22"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4643,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "1902:17:22"
                                                                                    }
                                                                                ],
                                                                                "id": 4644,
                                                                                "name": "MemberAccess",
                                                                                "src": "1902:23:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "address",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_contract$_Security_$5917",
                                                                                                    "typeString": "contract Security"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "type": "type(address)",
                                                                                            "value": "address"
                                                                                        },
                                                                                        "id": 4645,
                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                        "src": "1926:7:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 9502,
                                                                                            "type": "contract Security",
                                                                                            "value": "this"
                                                                                        },
                                                                                        "id": 4646,
                                                                                        "name": "Identifier",
                                                                                        "src": "1934:4:22"
                                                                                    }
                                                                                ],
                                                                                "id": 4647,
                                                                                "name": "FunctionCall",
                                                                                "src": "1926:13:22"
                                                                            }
                                                                        ],
                                                                        "id": 4648,
                                                                        "name": "FunctionCall",
                                                                        "src": "1902:38:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4630,
                                                                            "type": "address",
                                                                            "value": "sender"
                                                                        },
                                                                        "id": 4649,
                                                                        "name": "Identifier",
                                                                        "src": "1942:6:22"
                                                                    }
                                                                ],
                                                                "id": 4650,
                                                                "name": "BinaryOperation",
                                                                "src": "1902:46:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4633,
                                                                            "type": "bytes32",
                                                                            "value": "role"
                                                                        },
                                                                        "id": 4651,
                                                                        "name": "Identifier",
                                                                        "src": "1952:4:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "437573746f6469616e",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"Custodian\"",
                                                                            "value": "Custodian"
                                                                        },
                                                                        "id": 4652,
                                                                        "name": "Literal",
                                                                        "src": "1958:11:22"
                                                                    }
                                                                ],
                                                                "id": 4653,
                                                                "name": "BinaryOperation",
                                                                "src": "1952:17:22"
                                                            }
                                                        ],
                                                        "id": 4654,
                                                        "name": "BinaryOperation",
                                                        "src": "1902:67:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "4e6f7420697373756572206f7220637573746f6469616e",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Not issuer or custodian\"",
                                                            "value": "Not issuer or custodian"
                                                        },
                                                        "id": 4655,
                                                        "name": "Literal",
                                                        "src": "1989:25:22"
                                                    }
                                                ],
                                                "id": 4656,
                                                "name": "FunctionCall",
                                                "src": "1894:121:22"
                                            }
                                        ],
                                        "id": 4657,
                                        "name": "ExpressionStatement",
                                        "src": "1894:121:22"
                                    },
                                    {
                                        "id": 4658,
                                        "name": "PlaceholderStatement",
                                        "src": "2026:1:22"
                                    }
                                ],
                                "id": 4659,
                                "name": "Block",
                                "src": "1828:207:22"
                            }
                        ],
                        "id": 4660,
                        "name": "ModifierDefinition",
                        "src": "1776:259:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "name": "onlyIssueManager",
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "sender",
                                            "scope": 4681,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4661,
                                                "name": "ElementaryTypeName",
                                                "src": "2070:7:22"
                                            }
                                        ],
                                        "id": 4662,
                                        "name": "VariableDeclaration",
                                        "src": "2070:14:22"
                                    }
                                ],
                                "id": 4663,
                                "name": "ParameterList",
                                "src": "2069:16:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_9aae436f01e452f332c999c70ec9e12d679c868052a790c26c256ff429642457",
                                                                    "typeString": "literal_string \"Only issuer managers allowed\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 4664,
                                                        "name": "Identifier",
                                                        "src": "2096:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "address",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "getDP",
                                                                            "referencedDeclaration": 6627,
                                                                            "type": "function (address) view external returns (address)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "contract IFactory",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6628,
                                                                                            "type": "type(contract IFactory)",
                                                                                            "value": "IFactory"
                                                                                        },
                                                                                        "id": 4665,
                                                                                        "name": "Identifier",
                                                                                        "src": "2104:8:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "arguments": [
                                                                                                null
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "address",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 328,
                                                                                                    "type": "function () view returns (address)",
                                                                                                    "value": "owner"
                                                                                                },
                                                                                                "id": 4666,
                                                                                                "name": "Identifier",
                                                                                                "src": "2113:5:22"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4667,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "2113:7:22"
                                                                                    }
                                                                                ],
                                                                                "id": 4668,
                                                                                "name": "FunctionCall",
                                                                                "src": "2104:17:22"
                                                                            }
                                                                        ],
                                                                        "id": 4669,
                                                                        "name": "MemberAccess",
                                                                        "src": "2104:23:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "address",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_contract$_Security_$5917",
                                                                                            "typeString": "contract Security"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "type": "type(address)",
                                                                                    "value": "address"
                                                                                },
                                                                                "id": 4670,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "2128:7:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9502,
                                                                                    "type": "contract Security",
                                                                                    "value": "this"
                                                                                },
                                                                                "id": 4671,
                                                                                "name": "Identifier",
                                                                                "src": "2136:4:22"
                                                                            }
                                                                        ],
                                                                        "id": 4672,
                                                                        "name": "FunctionCall",
                                                                        "src": "2128:13:22"
                                                                    }
                                                                ],
                                                                "id": 4673,
                                                                "name": "FunctionCall",
                                                                "src": "2104:38:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4662,
                                                                    "type": "address",
                                                                    "value": "sender"
                                                                },
                                                                "id": 4674,
                                                                "name": "Identifier",
                                                                "src": "2144:6:22"
                                                            }
                                                        ],
                                                        "id": 4675,
                                                        "name": "BinaryOperation",
                                                        "src": "2104:46:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "4f6e6c7920697373756572206d616e616765727320616c6c6f776564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Only issuer managers allowed\"",
                                                            "value": "Only issuer managers allowed"
                                                        },
                                                        "id": 4676,
                                                        "name": "Literal",
                                                        "src": "2152:30:22"
                                                    }
                                                ],
                                                "id": 4677,
                                                "name": "FunctionCall",
                                                "src": "2096:87:22"
                                            }
                                        ],
                                        "id": 4678,
                                        "name": "ExpressionStatement",
                                        "src": "2096:87:22"
                                    },
                                    {
                                        "id": 4679,
                                        "name": "PlaceholderStatement",
                                        "src": "2194:1:22"
                                    }
                                ],
                                "id": 4680,
                                "name": "Block",
                                "src": "2085:118:22"
                            }
                        ],
                        "id": 4681,
                        "name": "ModifierDefinition",
                        "src": "2043:160:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "name": "onlyWhiteListed",
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "sender",
                                            "scope": 4714,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4682,
                                                "name": "ElementaryTypeName",
                                                "src": "2237:7:22"
                                            }
                                        ],
                                        "id": 4683,
                                        "name": "VariableDeclaration",
                                        "src": "2237:14:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 4714,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 4684,
                                                "name": "ElementaryTypeName",
                                                "src": "2253:7:22"
                                            }
                                        ],
                                        "id": 4685,
                                        "name": "VariableDeclaration",
                                        "src": "2253:14:22"
                                    }
                                ],
                                "id": 4686,
                                "name": "ParameterList",
                                "src": "2236:32:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_fdc2378cfc3ce25a15156a76aba71fb670b03bf5fa019bf0eeff7172fdd75587",
                                                                    "typeString": "literal_string \"Sender wallet not whitelisted\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 4687,
                                                        "name": "Identifier",
                                                        "src": "2279:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "||",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "||",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": ">=",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4600,
                                                                                            "type": "mapping(address => uint256)",
                                                                                            "value": "whitelisted"
                                                                                        },
                                                                                        "id": 4688,
                                                                                        "name": "Identifier",
                                                                                        "src": "2287:11:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4683,
                                                                                            "type": "address",
                                                                                            "value": "sender"
                                                                                        },
                                                                                        "id": 4689,
                                                                                        "name": "Identifier",
                                                                                        "src": "2299:6:22"
                                                                                    }
                                                                                ],
                                                                                "id": 4690,
                                                                                "name": "IndexAccess",
                                                                                "src": "2287:19:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4685,
                                                                                    "type": "uint256",
                                                                                    "value": "amount"
                                                                                },
                                                                                "id": 4691,
                                                                                "name": "Identifier",
                                                                                "src": "2310:6:22"
                                                                            }
                                                                        ],
                                                                        "id": 4692,
                                                                        "name": "BinaryOperation",
                                                                        "src": "2287:29:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "==",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "address",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "getDP",
                                                                                            "referencedDeclaration": 6627,
                                                                                            "type": "function (address) view external returns (address)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "type": "contract IFactory",
                                                                                                    "type_conversion": true
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            ],
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6628,
                                                                                                            "type": "type(contract IFactory)",
                                                                                                            "value": "IFactory"
                                                                                                        },
                                                                                                        "id": 4693,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "2320:8:22"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "arguments": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "type": "address",
                                                                                                            "type_conversion": false
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 328,
                                                                                                                    "type": "function () view returns (address)",
                                                                                                                    "value": "owner"
                                                                                                                },
                                                                                                                "id": 4694,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "2329:5:22"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 4695,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "2329:7:22"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 4696,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "2320:17:22"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4697,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "2320:23:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "address",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_contract$_Security_$5917",
                                                                                                            "typeString": "contract Security"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "type(address)",
                                                                                                    "value": "address"
                                                                                                },
                                                                                                "id": 4698,
                                                                                                "name": "ElementaryTypeNameExpression",
                                                                                                "src": "2344:7:22"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 9502,
                                                                                                    "type": "contract Security",
                                                                                                    "value": "this"
                                                                                                },
                                                                                                "id": 4699,
                                                                                                "name": "Identifier",
                                                                                                "src": "2352:4:22"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4700,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "2344:13:22"
                                                                                    }
                                                                                ],
                                                                                "id": 4701,
                                                                                "name": "FunctionCall",
                                                                                "src": "2320:38:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4683,
                                                                                    "type": "address",
                                                                                    "value": "sender"
                                                                                },
                                                                                "id": 4702,
                                                                                "name": "Identifier",
                                                                                "src": "2360:6:22"
                                                                            }
                                                                        ],
                                                                        "id": 4703,
                                                                        "name": "BinaryOperation",
                                                                        "src": "2320:46:22"
                                                                    }
                                                                ],
                                                                "id": 4704,
                                                                "name": "BinaryOperation",
                                                                "src": "2287:79:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4683,
                                                                            "type": "address",
                                                                            "value": "sender"
                                                                        },
                                                                        "id": 4705,
                                                                        "name": "Identifier",
                                                                        "src": "2370:6:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4585,
                                                                            "type": "address",
                                                                            "value": "_issuer"
                                                                        },
                                                                        "id": 4706,
                                                                        "name": "Identifier",
                                                                        "src": "2378:7:22"
                                                                    }
                                                                ],
                                                                "id": 4707,
                                                                "name": "BinaryOperation",
                                                                "src": "2370:15:22"
                                                            }
                                                        ],
                                                        "id": 4708,
                                                        "name": "BinaryOperation",
                                                        "src": "2287:98:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "53656e6465722077616c6c6574206e6f742077686974656c6973746564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Sender wallet not whitelisted\"",
                                                            "value": "Sender wallet not whitelisted"
                                                        },
                                                        "id": 4709,
                                                        "name": "Literal",
                                                        "src": "2387:31:22"
                                                    }
                                                ],
                                                "id": 4710,
                                                "name": "FunctionCall",
                                                "src": "2279:140:22"
                                            }
                                        ],
                                        "id": 4711,
                                        "name": "ExpressionStatement",
                                        "src": "2279:140:22"
                                    },
                                    {
                                        "id": 4712,
                                        "name": "PlaceholderStatement",
                                        "src": "2430:1:22"
                                    }
                                ],
                                "id": 4713,
                                "name": "Block",
                                "src": "2268:171:22"
                            }
                        ],
                        "id": 4714,
                        "name": "ModifierDefinition",
                        "src": "2211:228:22"
                    },
                    {
                        "attributes": {
                            "documentation": "@dev Sets the values for {name} and {symbol}.\r\n\n     * The default value of {decimals} is 18. To select a different value for\r\n{decimals} you should overload it.\r\n\n     * All two of these values are immutable: they can only be set once during\r\nconstruction.\r",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "initialize",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "name_",
                                            "scope": 4772,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 4715,
                                                "name": "ElementaryTypeName",
                                                "src": "2779:7:22"
                                            }
                                        ],
                                        "id": 4716,
                                        "name": "VariableDeclaration",
                                        "src": "2779:13:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "symbol_",
                                            "scope": 4772,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 4717,
                                                "name": "ElementaryTypeName",
                                                "src": "2794:7:22"
                                            }
                                        ],
                                        "id": 4718,
                                        "name": "VariableDeclaration",
                                        "src": "2794:15:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "_owner",
                                            "scope": 4772,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4719,
                                                "name": "ElementaryTypeName",
                                                "src": "2811:7:22"
                                            }
                                        ],
                                        "id": 4720,
                                        "name": "VariableDeclaration",
                                        "src": "2811:14:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "issuer",
                                            "scope": 4772,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4721,
                                                "name": "ElementaryTypeName",
                                                "src": "2827:7:22"
                                            }
                                        ],
                                        "id": 4722,
                                        "name": "VariableDeclaration",
                                        "src": "2827:14:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "client",
                                            "scope": 4772,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4723,
                                                "name": "ElementaryTypeName",
                                                "src": "2843:7:22"
                                            }
                                        ],
                                        "id": 4724,
                                        "name": "VariableDeclaration",
                                        "src": "2843:14:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "currency",
                                            "scope": 4772,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4725,
                                                "name": "ElementaryTypeName",
                                                "src": "2859:7:22"
                                            }
                                        ],
                                        "id": 4726,
                                        "name": "VariableDeclaration",
                                        "src": "2859:16:22"
                                    }
                                ],
                                "id": 4727,
                                "name": "ParameterList",
                                "src": "2778:98:22"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 4730,
                                "name": "ParameterList",
                                "src": "2896:0:22"
                            },
                            {
                                "attributes": {
                                    "arguments": null
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 1017,
                                            "type": "modifier ()",
                                            "value": "initializer"
                                        },
                                        "id": 4728,
                                        "name": "Identifier",
                                        "src": "2884:11:22"
                                    }
                                ],
                                "id": 4729,
                                "name": "ModifierInvocation",
                                "src": "2884:11:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "initialize",
                                                            "referencedDeclaration": 320,
                                                            "type": "function (address)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 409,
                                                                    "type": "type(contract Ownable)",
                                                                    "value": "Ownable"
                                                                },
                                                                "id": 4731,
                                                                "name": "Identifier",
                                                                "src": "2915:7:22"
                                                            }
                                                        ],
                                                        "id": 4733,
                                                        "name": "MemberAccess",
                                                        "src": "2915:18:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4720,
                                                            "type": "address",
                                                            "value": "_owner"
                                                        },
                                                        "id": 4734,
                                                        "name": "Identifier",
                                                        "src": "2934:6:22"
                                                    }
                                                ],
                                                "id": 4735,
                                                "name": "FunctionCall",
                                                "src": "2915:26:22"
                                            }
                                        ],
                                        "id": 4736,
                                        "name": "ExpressionStatement",
                                        "src": "2915:26:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "string storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4579,
                                                            "type": "string storage ref",
                                                            "value": "_name"
                                                        },
                                                        "id": 4737,
                                                        "name": "Identifier",
                                                        "src": "2952:5:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "string memory",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                                            "typeString": "bytes memory"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(string storage pointer)",
                                                                    "value": "string"
                                                                },
                                                                "id": 4738,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "2960:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bytes memory",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "member_name": "encodePacked",
                                                                            "referencedDeclaration": null,
                                                                            "type": "function () pure returns (bytes memory)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9411,
                                                                                    "type": "abi",
                                                                                    "value": "abi"
                                                                                },
                                                                                "id": 4739,
                                                                                "name": "Identifier",
                                                                                "src": "2967:3:22"
                                                                            }
                                                                        ],
                                                                        "id": 4740,
                                                                        "name": "MemberAccess",
                                                                        "src": "2967:16:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4716,
                                                                            "type": "bytes32",
                                                                            "value": "name_"
                                                                        },
                                                                        "id": 4741,
                                                                        "name": "Identifier",
                                                                        "src": "2984:5:22"
                                                                    }
                                                                ],
                                                                "id": 4742,
                                                                "name": "FunctionCall",
                                                                "src": "2967:23:22"
                                                            }
                                                        ],
                                                        "id": 4743,
                                                        "name": "FunctionCall",
                                                        "src": "2960:31:22"
                                                    }
                                                ],
                                                "id": 4744,
                                                "name": "Assignment",
                                                "src": "2952:39:22"
                                            }
                                        ],
                                        "id": 4745,
                                        "name": "ExpressionStatement",
                                        "src": "2952:39:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "string storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4581,
                                                            "type": "string storage ref",
                                                            "value": "_symbol"
                                                        },
                                                        "id": 4746,
                                                        "name": "Identifier",
                                                        "src": "3002:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "string memory",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                                            "typeString": "bytes memory"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(string storage pointer)",
                                                                    "value": "string"
                                                                },
                                                                "id": 4747,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "3012:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bytes memory",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "member_name": "encodePacked",
                                                                            "referencedDeclaration": null,
                                                                            "type": "function () pure returns (bytes memory)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9411,
                                                                                    "type": "abi",
                                                                                    "value": "abi"
                                                                                },
                                                                                "id": 4748,
                                                                                "name": "Identifier",
                                                                                "src": "3019:3:22"
                                                                            }
                                                                        ],
                                                                        "id": 4749,
                                                                        "name": "MemberAccess",
                                                                        "src": "3019:16:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4718,
                                                                            "type": "bytes32",
                                                                            "value": "symbol_"
                                                                        },
                                                                        "id": 4750,
                                                                        "name": "Identifier",
                                                                        "src": "3036:7:22"
                                                                    }
                                                                ],
                                                                "id": 4751,
                                                                "name": "FunctionCall",
                                                                "src": "3019:25:22"
                                                            }
                                                        ],
                                                        "id": 4752,
                                                        "name": "FunctionCall",
                                                        "src": "3012:33:22"
                                                    }
                                                ],
                                                "id": 4753,
                                                "name": "Assignment",
                                                "src": "3002:43:22"
                                            }
                                        ],
                                        "id": 4754,
                                        "name": "ExpressionStatement",
                                        "src": "3002:43:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4585,
                                                            "type": "address",
                                                            "value": "_issuer"
                                                        },
                                                        "id": 4755,
                                                        "name": "Identifier",
                                                        "src": "3056:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4722,
                                                            "type": "address",
                                                            "value": "issuer"
                                                        },
                                                        "id": 4756,
                                                        "name": "Identifier",
                                                        "src": "3066:6:22"
                                                    }
                                                ],
                                                "id": 4757,
                                                "name": "Assignment",
                                                "src": "3056:16:22"
                                            }
                                        ],
                                        "id": 4758,
                                        "name": "ExpressionStatement",
                                        "src": "3056:16:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "contract VerifiedClient"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4583,
                                                            "type": "contract VerifiedClient",
                                                            "value": "_client"
                                                        },
                                                        "id": 4759,
                                                        "name": "Identifier",
                                                        "src": "3083:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "contract VerifiedClient",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6873,
                                                                    "type": "type(contract VerifiedClient)",
                                                                    "value": "VerifiedClient"
                                                                },
                                                                "id": 4760,
                                                                "name": "Identifier",
                                                                "src": "3093:14:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4724,
                                                                    "type": "address",
                                                                    "value": "client"
                                                                },
                                                                "id": 4761,
                                                                "name": "Identifier",
                                                                "src": "3108:6:22"
                                                            }
                                                        ],
                                                        "id": 4762,
                                                        "name": "FunctionCall",
                                                        "src": "3093:22:22"
                                                    }
                                                ],
                                                "id": 4763,
                                                "name": "Assignment",
                                                "src": "3083:32:22"
                                            }
                                        ],
                                        "id": 4764,
                                        "name": "ExpressionStatement",
                                        "src": "3083:32:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "contract IERC20"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4602,
                                                            "type": "contract IERC20",
                                                            "value": "fundsToken"
                                                        },
                                                        "id": 4765,
                                                        "name": "Identifier",
                                                        "src": "3126:10:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "contract IERC20",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 890,
                                                                    "type": "type(contract IERC20)",
                                                                    "value": "IERC20"
                                                                },
                                                                "id": 4766,
                                                                "name": "Identifier",
                                                                "src": "3139:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4726,
                                                                    "type": "address",
                                                                    "value": "currency"
                                                                },
                                                                "id": 4767,
                                                                "name": "Identifier",
                                                                "src": "3146:8:22"
                                                            }
                                                        ],
                                                        "id": 4768,
                                                        "name": "FunctionCall",
                                                        "src": "3139:16:22"
                                                    }
                                                ],
                                                "id": 4769,
                                                "name": "Assignment",
                                                "src": "3126:29:22"
                                            }
                                        ],
                                        "id": 4770,
                                        "name": "ExpressionStatement",
                                        "src": "3126:29:22"
                                    }
                                ],
                                "id": 4771,
                                "name": "Block",
                                "src": "2896:267:22"
                            }
                        ],
                        "id": 4772,
                        "name": "FunctionDefinition",
                        "src": "2759:404:22"
                    },
                    {
                        "attributes": {
                            "documentation": "@dev Returns the name of the token.\r",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "name",
                            "scope": 5917,
                            "stateMutability": "view",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 4773,
                                "name": "ParameterList",
                                "src": "3246:2:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 4780,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "string",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "string",
                                                    "type": "string"
                                                },
                                                "id": 4774,
                                                "name": "ElementaryTypeName",
                                                "src": "3270:6:22"
                                            }
                                        ],
                                        "id": 4775,
                                        "name": "VariableDeclaration",
                                        "src": "3270:13:22"
                                    }
                                ],
                                "id": 4776,
                                "name": "ParameterList",
                                "src": "3269:15:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 4776
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 4579,
                                                    "type": "string storage ref",
                                                    "value": "_name"
                                                },
                                                "id": 4777,
                                                "name": "Identifier",
                                                "src": "3303:5:22"
                                            }
                                        ],
                                        "id": 4778,
                                        "name": "Return",
                                        "src": "3296:12:22"
                                    }
                                ],
                                "id": 4779,
                                "name": "Block",
                                "src": "3285:31:22"
                            }
                        ],
                        "id": 4780,
                        "name": "FunctionDefinition",
                        "src": "3233:83:22"
                    },
                    {
                        "attributes": {
                            "documentation": "@dev Returns the symbol of the token, usually a shorter version of the\r\nname.\r",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "symbol",
                            "scope": 5917,
                            "stateMutability": "view",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 4781,
                                "name": "ParameterList",
                                "src": "3450:2:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 4788,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "string",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "string",
                                                    "type": "string"
                                                },
                                                "id": 4782,
                                                "name": "ElementaryTypeName",
                                                "src": "3474:6:22"
                                            }
                                        ],
                                        "id": 4783,
                                        "name": "VariableDeclaration",
                                        "src": "3474:13:22"
                                    }
                                ],
                                "id": 4784,
                                "name": "ParameterList",
                                "src": "3473:15:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 4784
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 4581,
                                                    "type": "string storage ref",
                                                    "value": "_symbol"
                                                },
                                                "id": 4785,
                                                "name": "Identifier",
                                                "src": "3507:7:22"
                                            }
                                        ],
                                        "id": 4786,
                                        "name": "Return",
                                        "src": "3500:14:22"
                                    }
                                ],
                                "id": 4787,
                                "name": "Block",
                                "src": "3489:33:22"
                            }
                        ],
                        "id": 4788,
                        "name": "FunctionDefinition",
                        "src": "3435:87:22"
                    },
                    {
                        "attributes": {
                            "documentation": "Securities are indivisible, so returning decimal 0\r",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "decimals",
                            "scope": 5917,
                            "stateMutability": "view",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 4789,
                                "name": "ParameterList",
                                "src": "3624:2:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 4796,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint8",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint8",
                                                    "type": "uint8"
                                                },
                                                "id": 4790,
                                                "name": "ElementaryTypeName",
                                                "src": "3648:5:22"
                                            }
                                        ],
                                        "id": 4791,
                                        "name": "VariableDeclaration",
                                        "src": "3648:5:22"
                                    }
                                ],
                                "id": 4792,
                                "name": "ParameterList",
                                "src": "3647:7:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 4792
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "hexvalue": "3138",
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "subdenomination": null,
                                                    "token": "number",
                                                    "type": "int_const 18",
                                                    "value": "18"
                                                },
                                                "id": 4793,
                                                "name": "Literal",
                                                "src": "3673:2:22"
                                            }
                                        ],
                                        "id": 4794,
                                        "name": "Return",
                                        "src": "3666:9:22"
                                    }
                                ],
                                "id": 4795,
                                "name": "Block",
                                "src": "3655:28:22"
                            }
                        ],
                        "id": 4796,
                        "name": "FunctionDefinition",
                        "src": "3607:76:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "mintToken",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": 6671,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "issuer",
                                            "scope": 4837,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4797,
                                                "name": "ElementaryTypeName",
                                                "src": "3710:7:22"
                                            }
                                        ],
                                        "id": 4798,
                                        "name": "VariableDeclaration",
                                        "src": "3710:14:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 4837,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 4799,
                                                "name": "ElementaryTypeName",
                                                "src": "3726:7:22"
                                            }
                                        ],
                                        "id": 4800,
                                        "name": "VariableDeclaration",
                                        "src": "3726:14:22"
                                    }
                                ],
                                "id": 4801,
                                "name": "ParameterList",
                                "src": "3709:32:22"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 4804,
                                "name": "ParameterList",
                                "src": "3760:0:22"
                            },
                            {
                                "attributes": {
                                    "arguments": null
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 338,
                                            "type": "modifier ()",
                                            "value": "onlyOwner"
                                        },
                                        "id": 4802,
                                        "name": "Identifier",
                                        "src": "3751:9:22"
                                    }
                                ],
                                "id": 4803,
                                "name": "ModifierInvocation",
                                "src": "3751:9:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6207,
                                                            "type": "function (address,address,uint256)",
                                                            "value": "_beforeTokenTransfer"
                                                        },
                                                        "id": 4805,
                                                        "name": "Identifier",
                                                        "src": "3771:20:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "address payable",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                            "typeString": "int_const 0"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)",
                                                                    "value": "address"
                                                                },
                                                                "id": 4806,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "3792:7:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "307830",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0x0"
                                                                },
                                                                "id": 4807,
                                                                "name": "Literal",
                                                                "src": "3800:3:22"
                                                            }
                                                        ],
                                                        "id": 4808,
                                                        "name": "FunctionCall",
                                                        "src": "3792:12:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4798,
                                                            "type": "address",
                                                            "value": "issuer"
                                                        },
                                                        "id": 4809,
                                                        "name": "Identifier",
                                                        "src": "3806:6:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4800,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 4810,
                                                        "name": "Identifier",
                                                        "src": "3814:6:22"
                                                    }
                                                ],
                                                "id": 4811,
                                                "name": "FunctionCall",
                                                "src": "3771:50:22"
                                            }
                                        ],
                                        "id": 4812,
                                        "name": "ExpressionStatement",
                                        "src": "3771:50:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                3816
                                                            ],
                                                            "referencedDeclaration": 3816,
                                                            "type": "function (address,uint256)",
                                                            "value": "_mint"
                                                        },
                                                        "id": 4813,
                                                        "name": "Identifier",
                                                        "src": "3832:5:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4798,
                                                            "type": "address",
                                                            "value": "issuer"
                                                        },
                                                        "id": 4814,
                                                        "name": "Identifier",
                                                        "src": "3838:6:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4800,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 4815,
                                                        "name": "Identifier",
                                                        "src": "3846:6:22"
                                                    }
                                                ],
                                                "id": 4816,
                                                "name": "FunctionCall",
                                                "src": "3832:21:22"
                                            }
                                        ],
                                        "id": 4817,
                                        "name": "ExpressionStatement",
                                        "src": "3832:21:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "push",
                                                            "referencedDeclaration": null,
                                                            "type": "function (address) returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4588,
                                                                    "type": "address[] storage ref",
                                                                    "value": "holders"
                                                                },
                                                                "id": 4818,
                                                                "name": "Identifier",
                                                                "src": "3864:7:22"
                                                            }
                                                        ],
                                                        "id": 4820,
                                                        "name": "MemberAccess",
                                                        "src": "3864:12:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4798,
                                                            "type": "address",
                                                            "value": "issuer"
                                                        },
                                                        "id": 4821,
                                                        "name": "Identifier",
                                                        "src": "3877:6:22"
                                                    }
                                                ],
                                                "id": 4822,
                                                "name": "FunctionCall",
                                                "src": "3864:20:22"
                                            }
                                        ],
                                        "id": 4823,
                                        "name": "ExpressionStatement",
                                        "src": "3864:20:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4592,
                                                                    "type": "mapping(address => uint256)",
                                                                    "value": "holderIndex"
                                                                },
                                                                "id": 4824,
                                                                "name": "Identifier",
                                                                "src": "3895:11:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4798,
                                                                    "type": "address",
                                                                    "value": "issuer"
                                                                },
                                                                "id": 4825,
                                                                "name": "Identifier",
                                                                "src": "3907:6:22"
                                                            }
                                                        ],
                                                        "id": 4826,
                                                        "name": "IndexAccess",
                                                        "src": "3895:19:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "length",
                                                            "referencedDeclaration": null,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4588,
                                                                    "type": "address[] storage ref",
                                                                    "value": "holders"
                                                                },
                                                                "id": 4827,
                                                                "name": "Identifier",
                                                                "src": "3915:7:22"
                                                            }
                                                        ],
                                                        "id": 4828,
                                                        "name": "MemberAccess",
                                                        "src": "3915:14:22"
                                                    }
                                                ],
                                                "id": 4829,
                                                "name": "Assignment",
                                                "src": "3895:34:22"
                                            }
                                        ],
                                        "id": 4830,
                                        "name": "ExpressionStatement",
                                        "src": "3895:34:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4628,
                                                            "type": "function (address,uint256)",
                                                            "value": "Mint"
                                                        },
                                                        "id": 4831,
                                                        "name": "Identifier",
                                                        "src": "3945:4:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4798,
                                                            "type": "address",
                                                            "value": "issuer"
                                                        },
                                                        "id": 4832,
                                                        "name": "Identifier",
                                                        "src": "3950:6:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4800,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 4833,
                                                        "name": "Identifier",
                                                        "src": "3958:6:22"
                                                    }
                                                ],
                                                "id": 4834,
                                                "name": "FunctionCall",
                                                "src": "3945:20:22"
                                            }
                                        ],
                                        "id": 4835,
                                        "name": "EmitStatement",
                                        "src": "3940:25:22"
                                    }
                                ],
                                "id": 4836,
                                "name": "Block",
                                "src": "3760:213:22"
                            }
                        ],
                        "id": 4837,
                        "name": "FunctionDefinition",
                        "src": "3691:282:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "transferToken",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": 6664,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "transferor",
                                            "scope": 4881,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4838,
                                                "name": "ElementaryTypeName",
                                                "src": "4004:7:22"
                                            }
                                        ],
                                        "id": 4839,
                                        "name": "VariableDeclaration",
                                        "src": "4004:18:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "transferee",
                                            "scope": 4881,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4840,
                                                "name": "ElementaryTypeName",
                                                "src": "4024:7:22"
                                            }
                                        ],
                                        "id": 4841,
                                        "name": "VariableDeclaration",
                                        "src": "4024:18:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 4881,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 4842,
                                                "name": "ElementaryTypeName",
                                                "src": "4044:7:22"
                                            }
                                        ],
                                        "id": 4843,
                                        "name": "VariableDeclaration",
                                        "src": "4044:14:22"
                                    }
                                ],
                                "id": 4844,
                                "name": "ParameterList",
                                "src": "4003:56:22"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 4847,
                                "name": "ParameterList",
                                "src": "4078:0:22"
                            },
                            {
                                "attributes": {
                                    "arguments": null
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 338,
                                            "type": "modifier ()",
                                            "value": "onlyOwner"
                                        },
                                        "id": 4845,
                                        "name": "Identifier",
                                        "src": "4069:9:22"
                                    }
                                ],
                                "id": 4846,
                                "name": "ModifierInvocation",
                                "src": "4069:9:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6207,
                                                            "type": "function (address,address,uint256)",
                                                            "value": "_beforeTokenTransfer"
                                                        },
                                                        "id": 4848,
                                                        "name": "Identifier",
                                                        "src": "4089:20:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4839,
                                                            "type": "address",
                                                            "value": "transferor"
                                                        },
                                                        "id": 4849,
                                                        "name": "Identifier",
                                                        "src": "4110:10:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4841,
                                                            "type": "address",
                                                            "value": "transferee"
                                                        },
                                                        "id": 4850,
                                                        "name": "Identifier",
                                                        "src": "4122:10:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4843,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 4851,
                                                        "name": "Identifier",
                                                        "src": "4134:6:22"
                                                    }
                                                ],
                                                "id": 4852,
                                                "name": "FunctionCall",
                                                "src": "4089:52:22"
                                            }
                                        ],
                                        "id": 4853,
                                        "name": "ExpressionStatement",
                                        "src": "4089:52:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                3784
                                                            ],
                                                            "referencedDeclaration": 3784,
                                                            "type": "function (address,address,uint256)",
                                                            "value": "_transfer"
                                                        },
                                                        "id": 4854,
                                                        "name": "Identifier",
                                                        "src": "4152:9:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4839,
                                                            "type": "address",
                                                            "value": "transferor"
                                                        },
                                                        "id": 4855,
                                                        "name": "Identifier",
                                                        "src": "4162:10:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4841,
                                                            "type": "address",
                                                            "value": "transferee"
                                                        },
                                                        "id": 4856,
                                                        "name": "Identifier",
                                                        "src": "4174:10:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4843,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 4857,
                                                        "name": "Identifier",
                                                        "src": "4186:6:22"
                                                    }
                                                ],
                                                "id": 4858,
                                                "name": "FunctionCall",
                                                "src": "4152:41:22"
                                            }
                                        ],
                                        "id": 4859,
                                        "name": "ExpressionStatement",
                                        "src": "4152:41:22"
                                    },
                                    {
                                        "attributes": {
                                            "falseBody": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4592,
                                                                    "type": "mapping(address => uint256)",
                                                                    "value": "holderIndex"
                                                                },
                                                                "id": 4860,
                                                                "name": "Identifier",
                                                                "src": "4207:11:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4841,
                                                                    "type": "address",
                                                                    "value": "transferee"
                                                                },
                                                                "id": 4861,
                                                                "name": "Identifier",
                                                                "src": "4219:10:22"
                                                            }
                                                        ],
                                                        "id": 4862,
                                                        "name": "IndexAccess",
                                                        "src": "4207:23:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 4863,
                                                        "name": "Literal",
                                                        "src": "4232:1:22"
                                                    }
                                                ],
                                                "id": 4864,
                                                "name": "BinaryOperation",
                                                "src": "4207:26:22"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "push",
                                                                            "referencedDeclaration": null,
                                                                            "type": "function (address) returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4588,
                                                                                    "type": "address[] storage ref",
                                                                                    "value": "holders"
                                                                                },
                                                                                "id": 4865,
                                                                                "name": "Identifier",
                                                                                "src": "4249:7:22"
                                                                            }
                                                                        ],
                                                                        "id": 4867,
                                                                        "name": "MemberAccess",
                                                                        "src": "4249:12:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4841,
                                                                            "type": "address",
                                                                            "value": "transferee"
                                                                        },
                                                                        "id": 4868,
                                                                        "name": "Identifier",
                                                                        "src": "4262:10:22"
                                                                    }
                                                                ],
                                                                "id": 4869,
                                                                "name": "FunctionCall",
                                                                "src": "4249:24:22"
                                                            }
                                                        ],
                                                        "id": 4870,
                                                        "name": "ExpressionStatement",
                                                        "src": "4249:24:22"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4592,
                                                                                    "type": "mapping(address => uint256)",
                                                                                    "value": "holderIndex"
                                                                                },
                                                                                "id": 4871,
                                                                                "name": "Identifier",
                                                                                "src": "4288:11:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4841,
                                                                                    "type": "address",
                                                                                    "value": "transferee"
                                                                                },
                                                                                "id": 4872,
                                                                                "name": "Identifier",
                                                                                "src": "4300:10:22"
                                                                            }
                                                                        ],
                                                                        "id": 4873,
                                                                        "name": "IndexAccess",
                                                                        "src": "4288:23:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "length",
                                                                            "referencedDeclaration": null,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4588,
                                                                                    "type": "address[] storage ref",
                                                                                    "value": "holders"
                                                                                },
                                                                                "id": 4874,
                                                                                "name": "Identifier",
                                                                                "src": "4312:7:22"
                                                                            }
                                                                        ],
                                                                        "id": 4875,
                                                                        "name": "MemberAccess",
                                                                        "src": "4312:14:22"
                                                                    }
                                                                ],
                                                                "id": 4876,
                                                                "name": "Assignment",
                                                                "src": "4288:38:22"
                                                            }
                                                        ],
                                                        "id": 4877,
                                                        "name": "ExpressionStatement",
                                                        "src": "4288:38:22"
                                                    }
                                                ],
                                                "id": 4878,
                                                "name": "Block",
                                                "src": "4234:104:22"
                                            }
                                        ],
                                        "id": 4879,
                                        "name": "IfStatement",
                                        "src": "4204:134:22"
                                    }
                                ],
                                "id": 4880,
                                "name": "Block",
                                "src": "4078:267:22"
                            }
                        ],
                        "id": 4881,
                        "name": "FunctionDefinition",
                        "src": "3981:364:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "whiteList",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": 6678,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "spender",
                                            "scope": 4907,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4882,
                                                "name": "ElementaryTypeName",
                                                "src": "4372:7:22"
                                            }
                                        ],
                                        "id": 4883,
                                        "name": "VariableDeclaration",
                                        "src": "4372:15:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 4907,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 4884,
                                                "name": "ElementaryTypeName",
                                                "src": "4389:7:22"
                                            }
                                        ],
                                        "id": 4885,
                                        "name": "VariableDeclaration",
                                        "src": "4389:14:22"
                                    }
                                ],
                                "id": 4886,
                                "name": "ParameterList",
                                "src": "4371:33:22"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 4892,
                                "name": "ParameterList",
                                "src": "4452:0:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 4714,
                                            "type": "modifier (address,uint256)",
                                            "value": "onlyWhiteListed"
                                        },
                                        "id": 4887,
                                        "name": "Identifier",
                                        "src": "4405:15:22"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                null
                                            ],
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "isStructConstructorCall": false,
                                            "lValueRequested": false,
                                            "names": [
                                                null
                                            ],
                                            "type": "address payable",
                                            "type_conversion": false
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": [
                                                        null
                                                    ],
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 17,
                                                    "type": "function () view returns (address payable)",
                                                    "value": "_msgSender"
                                                },
                                                "id": 4888,
                                                "name": "Identifier",
                                                "src": "4421:10:22"
                                            }
                                        ],
                                        "id": 4889,
                                        "name": "FunctionCall",
                                        "src": "4421:12:22"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 4885,
                                            "type": "uint256",
                                            "value": "amount"
                                        },
                                        "id": 4890,
                                        "name": "Identifier",
                                        "src": "4435:6:22"
                                    }
                                ],
                                "id": 4891,
                                "name": "ModifierInvocation",
                                "src": "4405:37:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                                    "typeString": "literal_string \"Contract paused\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 4893,
                                                        "name": "Identifier",
                                                        "src": "4463:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9078,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 4894,
                                                                "name": "Identifier",
                                                                "src": "4471:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 4895,
                                                                "name": "Literal",
                                                                "src": "4481:5:22"
                                                            }
                                                        ],
                                                        "id": 4896,
                                                        "name": "BinaryOperation",
                                                        "src": "4471:15:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "436f6e747261637420706175736564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Contract paused\"",
                                                            "value": "Contract paused"
                                                        },
                                                        "id": 4897,
                                                        "name": "Literal",
                                                        "src": "4488:17:22"
                                                    }
                                                ],
                                                "id": 4898,
                                                "name": "FunctionCall",
                                                "src": "4463:43:22"
                                            }
                                        ],
                                        "id": 4899,
                                        "name": "ExpressionStatement",
                                        "src": "4463:43:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4600,
                                                                    "type": "mapping(address => uint256)",
                                                                    "value": "whitelisted"
                                                                },
                                                                "id": 4900,
                                                                "name": "Identifier",
                                                                "src": "4517:11:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4883,
                                                                    "type": "address",
                                                                    "value": "spender"
                                                                },
                                                                "id": 4901,
                                                                "name": "Identifier",
                                                                "src": "4529:7:22"
                                                            }
                                                        ],
                                                        "id": 4902,
                                                        "name": "IndexAccess",
                                                        "src": "4517:20:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4885,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 4903,
                                                        "name": "Identifier",
                                                        "src": "4540:6:22"
                                                    }
                                                ],
                                                "id": 4904,
                                                "name": "Assignment",
                                                "src": "4517:29:22"
                                            }
                                        ],
                                        "id": 4905,
                                        "name": "ExpressionStatement",
                                        "src": "4517:29:22"
                                    }
                                ],
                                "id": 4906,
                                "name": "Block",
                                "src": "4452:102:22"
                            }
                        ],
                        "id": 4907,
                        "name": "FunctionDefinition",
                        "src": "4353:201:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "transfer",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": 475,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "recipient",
                                            "scope": 4981,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4908,
                                                "name": "ElementaryTypeName",
                                                "src": "4711:7:22"
                                            }
                                        ],
                                        "id": 4909,
                                        "name": "VariableDeclaration",
                                        "src": "4711:17:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 4981,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 4910,
                                                "name": "ElementaryTypeName",
                                                "src": "4730:7:22"
                                            }
                                        ],
                                        "id": 4911,
                                        "name": "VariableDeclaration",
                                        "src": "4730:14:22"
                                    }
                                ],
                                "id": 4912,
                                "name": "ParameterList",
                                "src": "4710:35:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 4981,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 4918,
                                                "name": "ElementaryTypeName",
                                                "src": "4800:4:22"
                                            }
                                        ],
                                        "id": 4919,
                                        "name": "VariableDeclaration",
                                        "src": "4800:4:22"
                                    }
                                ],
                                "id": 4920,
                                "name": "ParameterList",
                                "src": "4799:6:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 4714,
                                            "type": "modifier (address,uint256)",
                                            "value": "onlyWhiteListed"
                                        },
                                        "id": 4913,
                                        "name": "Identifier",
                                        "src": "4746:15:22"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                null
                                            ],
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "isStructConstructorCall": false,
                                            "lValueRequested": false,
                                            "names": [
                                                null
                                            ],
                                            "type": "address payable",
                                            "type_conversion": false
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": [
                                                        null
                                                    ],
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 17,
                                                    "type": "function () view returns (address payable)",
                                                    "value": "_msgSender"
                                                },
                                                "id": 4914,
                                                "name": "Identifier",
                                                "src": "4762:10:22"
                                            }
                                        ],
                                        "id": 4915,
                                        "name": "FunctionCall",
                                        "src": "4762:12:22"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 4911,
                                            "type": "uint256",
                                            "value": "amount"
                                        },
                                        "id": 4916,
                                        "name": "Identifier",
                                        "src": "4776:6:22"
                                    }
                                ],
                                "id": 4917,
                                "name": "ModifierInvocation",
                                "src": "4746:37:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                                    "typeString": "literal_string \"Contract paused\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 4921,
                                                        "name": "Identifier",
                                                        "src": "4817:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9078,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 4922,
                                                                "name": "Identifier",
                                                                "src": "4825:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 4923,
                                                                "name": "Literal",
                                                                "src": "4835:5:22"
                                                            }
                                                        ],
                                                        "id": 4924,
                                                        "name": "BinaryOperation",
                                                        "src": "4825:15:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "436f6e747261637420706175736564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Contract paused\"",
                                                            "value": "Contract paused"
                                                        },
                                                        "id": 4925,
                                                        "name": "Literal",
                                                        "src": "4842:17:22"
                                                    }
                                                ],
                                                "id": 4926,
                                                "name": "FunctionCall",
                                                "src": "4817:43:22"
                                            }
                                        ],
                                        "id": 4927,
                                        "name": "ExpressionStatement",
                                        "src": "4817:43:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3085567a2873e615ac3b43d0b914f3549f761cfaba05e5356329e0446dd07792",
                                                                    "typeString": "literal_string \"Funds transfer frozen\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 4928,
                                                        "name": "Identifier",
                                                        "src": "4871:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": ">=",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "sub",
                                                                            "referencedDeclaration": 141,
                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address_payable",
                                                                                                    "typeString": "address payable"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 456,
                                                                                            "type": "function (address) view returns (uint256)",
                                                                                            "value": "balanceOf"
                                                                                        },
                                                                                        "id": 4929,
                                                                                        "name": "Identifier",
                                                                                        "src": "4879:9:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "arguments": [
                                                                                                null
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "address payable",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 17,
                                                                                                    "type": "function () view returns (address payable)",
                                                                                                    "value": "_msgSender"
                                                                                                },
                                                                                                "id": 4930,
                                                                                                "name": "Identifier",
                                                                                                "src": "4889:10:22"
                                                                                            }
                                                                                        ],
                                                                                        "id": 4931,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "4889:12:22"
                                                                                    }
                                                                                ],
                                                                                "id": 4932,
                                                                                "name": "FunctionCall",
                                                                                "src": "4879:23:22"
                                                                            }
                                                                        ],
                                                                        "id": 4933,
                                                                        "name": "MemberAccess",
                                                                        "src": "4879:27:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4911,
                                                                            "type": "uint256",
                                                                            "value": "amount"
                                                                        },
                                                                        "id": 4934,
                                                                        "name": "Identifier",
                                                                        "src": "4907:6:22"
                                                                    }
                                                                ],
                                                                "id": 4935,
                                                                "name": "FunctionCall",
                                                                "src": "4879:35:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4596,
                                                                            "type": "mapping(address => uint256)",
                                                                            "value": "froze"
                                                                        },
                                                                        "id": 4936,
                                                                        "name": "Identifier",
                                                                        "src": "4918:5:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "arguments": [
                                                                                null
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "address payable",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        null
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 17,
                                                                                    "type": "function () view returns (address payable)",
                                                                                    "value": "_msgSender"
                                                                                },
                                                                                "id": 4937,
                                                                                "name": "Identifier",
                                                                                "src": "4924:10:22"
                                                                            }
                                                                        ],
                                                                        "id": 4938,
                                                                        "name": "FunctionCall",
                                                                        "src": "4924:12:22"
                                                                    }
                                                                ],
                                                                "id": 4939,
                                                                "name": "IndexAccess",
                                                                "src": "4918:19:22"
                                                            }
                                                        ],
                                                        "id": 4940,
                                                        "name": "BinaryOperation",
                                                        "src": "4879:58:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "46756e6473207472616e736665722066726f7a656e",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Funds transfer frozen\"",
                                                            "value": "Funds transfer frozen"
                                                        },
                                                        "id": 4941,
                                                        "name": "Literal",
                                                        "src": "4939:23:22"
                                                    }
                                                ],
                                                "id": 4942,
                                                "name": "FunctionCall",
                                                "src": "4871:92:22"
                                            }
                                        ],
                                        "id": 4943,
                                        "name": "ExpressionStatement",
                                        "src": "4871:92:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6207,
                                                            "type": "function (address,address,uint256)",
                                                            "value": "_beforeTokenTransfer"
                                                        },
                                                        "id": 4944,
                                                        "name": "Identifier",
                                                        "src": "4974:20:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "address payable",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        null
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 17,
                                                                    "type": "function () view returns (address payable)",
                                                                    "value": "_msgSender"
                                                                },
                                                                "id": 4945,
                                                                "name": "Identifier",
                                                                "src": "4995:10:22"
                                                            }
                                                        ],
                                                        "id": 4946,
                                                        "name": "FunctionCall",
                                                        "src": "4995:12:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4909,
                                                            "type": "address",
                                                            "value": "recipient"
                                                        },
                                                        "id": 4947,
                                                        "name": "Identifier",
                                                        "src": "5009:9:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4911,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 4948,
                                                        "name": "Identifier",
                                                        "src": "5020:6:22"
                                                    }
                                                ],
                                                "id": 4949,
                                                "name": "FunctionCall",
                                                "src": "4974:53:22"
                                            }
                                        ],
                                        "id": 4950,
                                        "name": "ExpressionStatement",
                                        "src": "4974:53:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                3784
                                                            ],
                                                            "referencedDeclaration": 3784,
                                                            "type": "function (address,address,uint256)",
                                                            "value": "_transfer"
                                                        },
                                                        "id": 4951,
                                                        "name": "Identifier",
                                                        "src": "5038:9:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "address payable",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        null
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 17,
                                                                    "type": "function () view returns (address payable)",
                                                                    "value": "_msgSender"
                                                                },
                                                                "id": 4952,
                                                                "name": "Identifier",
                                                                "src": "5048:10:22"
                                                            }
                                                        ],
                                                        "id": 4953,
                                                        "name": "FunctionCall",
                                                        "src": "5048:12:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4909,
                                                            "type": "address",
                                                            "value": "recipient"
                                                        },
                                                        "id": 4954,
                                                        "name": "Identifier",
                                                        "src": "5062:9:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4911,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 4955,
                                                        "name": "Identifier",
                                                        "src": "5073:6:22"
                                                    }
                                                ],
                                                "id": 4956,
                                                "name": "FunctionCall",
                                                "src": "5038:42:22"
                                            }
                                        ],
                                        "id": 4957,
                                        "name": "ExpressionStatement",
                                        "src": "5038:42:22"
                                    },
                                    {
                                        "attributes": {
                                            "falseBody": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4592,
                                                                    "type": "mapping(address => uint256)",
                                                                    "value": "holderIndex"
                                                                },
                                                                "id": 4958,
                                                                "name": "Identifier",
                                                                "src": "5094:11:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4909,
                                                                    "type": "address",
                                                                    "value": "recipient"
                                                                },
                                                                "id": 4959,
                                                                "name": "Identifier",
                                                                "src": "5106:9:22"
                                                            }
                                                        ],
                                                        "id": 4960,
                                                        "name": "IndexAccess",
                                                        "src": "5094:22:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 4961,
                                                        "name": "Literal",
                                                        "src": "5118:1:22"
                                                    }
                                                ],
                                                "id": 4962,
                                                "name": "BinaryOperation",
                                                "src": "5094:25:22"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "push",
                                                                            "referencedDeclaration": null,
                                                                            "type": "function (address) returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4588,
                                                                                    "type": "address[] storage ref",
                                                                                    "value": "holders"
                                                                                },
                                                                                "id": 4963,
                                                                                "name": "Identifier",
                                                                                "src": "5135:7:22"
                                                                            }
                                                                        ],
                                                                        "id": 4965,
                                                                        "name": "MemberAccess",
                                                                        "src": "5135:12:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4909,
                                                                            "type": "address",
                                                                            "value": "recipient"
                                                                        },
                                                                        "id": 4966,
                                                                        "name": "Identifier",
                                                                        "src": "5148:9:22"
                                                                    }
                                                                ],
                                                                "id": 4967,
                                                                "name": "FunctionCall",
                                                                "src": "5135:23:22"
                                                            }
                                                        ],
                                                        "id": 4968,
                                                        "name": "ExpressionStatement",
                                                        "src": "5135:23:22"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4592,
                                                                                    "type": "mapping(address => uint256)",
                                                                                    "value": "holderIndex"
                                                                                },
                                                                                "id": 4969,
                                                                                "name": "Identifier",
                                                                                "src": "5173:11:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4909,
                                                                                    "type": "address",
                                                                                    "value": "recipient"
                                                                                },
                                                                                "id": 4970,
                                                                                "name": "Identifier",
                                                                                "src": "5185:9:22"
                                                                            }
                                                                        ],
                                                                        "id": 4971,
                                                                        "name": "IndexAccess",
                                                                        "src": "5173:22:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "length",
                                                                            "referencedDeclaration": null,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4588,
                                                                                    "type": "address[] storage ref",
                                                                                    "value": "holders"
                                                                                },
                                                                                "id": 4972,
                                                                                "name": "Identifier",
                                                                                "src": "5196:7:22"
                                                                            }
                                                                        ],
                                                                        "id": 4973,
                                                                        "name": "MemberAccess",
                                                                        "src": "5196:14:22"
                                                                    }
                                                                ],
                                                                "id": 4974,
                                                                "name": "Assignment",
                                                                "src": "5173:37:22"
                                                            }
                                                        ],
                                                        "id": 4975,
                                                        "name": "ExpressionStatement",
                                                        "src": "5173:37:22"
                                                    }
                                                ],
                                                "id": 4976,
                                                "name": "Block",
                                                "src": "5120:102:22"
                                            }
                                        ],
                                        "id": 4977,
                                        "name": "IfStatement",
                                        "src": "5091:131:22"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 4920
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "hexvalue": "74727565",
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "subdenomination": null,
                                                    "token": "bool",
                                                    "type": "bool",
                                                    "value": "true"
                                                },
                                                "id": 4978,
                                                "name": "Literal",
                                                "src": "5239:4:22"
                                            }
                                        ],
                                        "id": 4979,
                                        "name": "Return",
                                        "src": "5232:11:22"
                                    }
                                ],
                                "id": 4980,
                                "name": "Block",
                                "src": "4806:445:22"
                            }
                        ],
                        "id": 4981,
                        "name": "FunctionDefinition",
                        "src": "4693:558:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "approve",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": 510,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "spender",
                                            "scope": 5011,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 4982,
                                                "name": "ElementaryTypeName",
                                                "src": "5446:7:22"
                                            }
                                        ],
                                        "id": 4983,
                                        "name": "VariableDeclaration",
                                        "src": "5446:15:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 5011,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 4984,
                                                "name": "ElementaryTypeName",
                                                "src": "5463:7:22"
                                            }
                                        ],
                                        "id": 4985,
                                        "name": "VariableDeclaration",
                                        "src": "5463:14:22"
                                    }
                                ],
                                "id": 4986,
                                "name": "ParameterList",
                                "src": "5445:33:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5011,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 4991,
                                                "name": "ElementaryTypeName",
                                                "src": "5528:4:22"
                                            }
                                        ],
                                        "id": 4992,
                                        "name": "VariableDeclaration",
                                        "src": "5528:4:22"
                                    }
                                ],
                                "id": 4993,
                                "name": "ParameterList",
                                "src": "5527:6:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 4714,
                                            "type": "modifier (address,uint256)",
                                            "value": "onlyWhiteListed"
                                        },
                                        "id": 4987,
                                        "name": "Identifier",
                                        "src": "5479:15:22"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 4983,
                                            "type": "address",
                                            "value": "spender"
                                        },
                                        "id": 4988,
                                        "name": "Identifier",
                                        "src": "5495:7:22"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 4985,
                                            "type": "uint256",
                                            "value": "amount"
                                        },
                                        "id": 4989,
                                        "name": "Identifier",
                                        "src": "5504:6:22"
                                    }
                                ],
                                "id": 4990,
                                "name": "ModifierInvocation",
                                "src": "5479:32:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                                    "typeString": "literal_string \"Contract paused\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 4994,
                                                        "name": "Identifier",
                                                        "src": "5545:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9078,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 4995,
                                                                "name": "Identifier",
                                                                "src": "5553:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 4996,
                                                                "name": "Literal",
                                                                "src": "5563:5:22"
                                                            }
                                                        ],
                                                        "id": 4997,
                                                        "name": "BinaryOperation",
                                                        "src": "5553:15:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "436f6e747261637420706175736564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Contract paused\"",
                                                            "value": "Contract paused"
                                                        },
                                                        "id": 4998,
                                                        "name": "Literal",
                                                        "src": "5570:17:22"
                                                    }
                                                ],
                                                "id": 4999,
                                                "name": "FunctionCall",
                                                "src": "5545:43:22"
                                            }
                                        ],
                                        "id": 5000,
                                        "name": "ExpressionStatement",
                                        "src": "5545:43:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 787,
                                                            "type": "function (address,address,uint256)",
                                                            "value": "_approve"
                                                        },
                                                        "id": 5001,
                                                        "name": "Identifier",
                                                        "src": "5599:8:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "address payable",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        null
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 17,
                                                                    "type": "function () view returns (address payable)",
                                                                    "value": "_msgSender"
                                                                },
                                                                "id": 5002,
                                                                "name": "Identifier",
                                                                "src": "5608:10:22"
                                                            }
                                                        ],
                                                        "id": 5003,
                                                        "name": "FunctionCall",
                                                        "src": "5608:12:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4983,
                                                            "type": "address",
                                                            "value": "spender"
                                                        },
                                                        "id": 5004,
                                                        "name": "Identifier",
                                                        "src": "5622:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4985,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 5005,
                                                        "name": "Identifier",
                                                        "src": "5631:6:22"
                                                    }
                                                ],
                                                "id": 5006,
                                                "name": "FunctionCall",
                                                "src": "5599:39:22"
                                            }
                                        ],
                                        "id": 5007,
                                        "name": "ExpressionStatement",
                                        "src": "5599:39:22"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 4993
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "hexvalue": "74727565",
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "subdenomination": null,
                                                    "token": "bool",
                                                    "type": "bool",
                                                    "value": "true"
                                                },
                                                "id": 5008,
                                                "name": "Literal",
                                                "src": "5656:4:22"
                                            }
                                        ],
                                        "id": 5009,
                                        "name": "Return",
                                        "src": "5649:11:22"
                                    }
                                ],
                                "id": 5010,
                                "name": "Block",
                                "src": "5534:134:22"
                            }
                        ],
                        "id": 5011,
                        "name": "FunctionDefinition",
                        "src": "5429:239:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "transferFrom",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": 546,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "sender",
                                            "scope": 5103,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5012,
                                                "name": "ElementaryTypeName",
                                                "src": "5848:7:22"
                                            }
                                        ],
                                        "id": 5013,
                                        "name": "VariableDeclaration",
                                        "src": "5848:14:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "recipient",
                                            "scope": 5103,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5014,
                                                "name": "ElementaryTypeName",
                                                "src": "5864:7:22"
                                            }
                                        ],
                                        "id": 5015,
                                        "name": "VariableDeclaration",
                                        "src": "5864:17:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 5103,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5016,
                                                "name": "ElementaryTypeName",
                                                "src": "5883:7:22"
                                            }
                                        ],
                                        "id": 5017,
                                        "name": "VariableDeclaration",
                                        "src": "5883:14:22"
                                    }
                                ],
                                "id": 5018,
                                "name": "ParameterList",
                                "src": "5847:51:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5103,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 5024,
                                                "name": "ElementaryTypeName",
                                                "src": "5953:4:22"
                                            }
                                        ],
                                        "id": 5025,
                                        "name": "VariableDeclaration",
                                        "src": "5953:4:22"
                                    }
                                ],
                                "id": 5026,
                                "name": "ParameterList",
                                "src": "5952:6:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 4714,
                                            "type": "modifier (address,uint256)",
                                            "value": "onlyWhiteListed"
                                        },
                                        "id": 5019,
                                        "name": "Identifier",
                                        "src": "5906:15:22"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                null
                                            ],
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "isStructConstructorCall": false,
                                            "lValueRequested": false,
                                            "names": [
                                                null
                                            ],
                                            "type": "address payable",
                                            "type_conversion": false
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": [
                                                        null
                                                    ],
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 17,
                                                    "type": "function () view returns (address payable)",
                                                    "value": "_msgSender"
                                                },
                                                "id": 5020,
                                                "name": "Identifier",
                                                "src": "5922:10:22"
                                            }
                                        ],
                                        "id": 5021,
                                        "name": "FunctionCall",
                                        "src": "5922:12:22"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 5017,
                                            "type": "uint256",
                                            "value": "amount"
                                        },
                                        "id": 5022,
                                        "name": "Identifier",
                                        "src": "5936:6:22"
                                    }
                                ],
                                "id": 5023,
                                "name": "ModifierInvocation",
                                "src": "5906:37:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                                    "typeString": "literal_string \"Contract paused\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5027,
                                                        "name": "Identifier",
                                                        "src": "5970:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9078,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 5028,
                                                                "name": "Identifier",
                                                                "src": "5978:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 5029,
                                                                "name": "Literal",
                                                                "src": "5988:5:22"
                                                            }
                                                        ],
                                                        "id": 5030,
                                                        "name": "BinaryOperation",
                                                        "src": "5978:15:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "436f6e747261637420706175736564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Contract paused\"",
                                                            "value": "Contract paused"
                                                        },
                                                        "id": 5031,
                                                        "name": "Literal",
                                                        "src": "5995:17:22"
                                                    }
                                                ],
                                                "id": 5032,
                                                "name": "FunctionCall",
                                                "src": "5970:43:22"
                                            }
                                        ],
                                        "id": 5033,
                                        "name": "ExpressionStatement",
                                        "src": "5970:43:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3085567a2873e615ac3b43d0b914f3549f761cfaba05e5356329e0446dd07792",
                                                                    "typeString": "literal_string \"Funds transfer frozen\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5034,
                                                        "name": "Identifier",
                                                        "src": "6024:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": ">=",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "sub",
                                                                            "referencedDeclaration": 141,
                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 456,
                                                                                            "type": "function (address) view returns (uint256)",
                                                                                            "value": "balanceOf"
                                                                                        },
                                                                                        "id": 5035,
                                                                                        "name": "Identifier",
                                                                                        "src": "6032:9:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5013,
                                                                                            "type": "address",
                                                                                            "value": "sender"
                                                                                        },
                                                                                        "id": 5036,
                                                                                        "name": "Identifier",
                                                                                        "src": "6042:6:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5037,
                                                                                "name": "FunctionCall",
                                                                                "src": "6032:17:22"
                                                                            }
                                                                        ],
                                                                        "id": 5038,
                                                                        "name": "MemberAccess",
                                                                        "src": "6032:21:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5017,
                                                                            "type": "uint256",
                                                                            "value": "amount"
                                                                        },
                                                                        "id": 5039,
                                                                        "name": "Identifier",
                                                                        "src": "6054:6:22"
                                                                    }
                                                                ],
                                                                "id": 5040,
                                                                "name": "FunctionCall",
                                                                "src": "6032:29:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4596,
                                                                            "type": "mapping(address => uint256)",
                                                                            "value": "froze"
                                                                        },
                                                                        "id": 5041,
                                                                        "name": "Identifier",
                                                                        "src": "6065:5:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5013,
                                                                            "type": "address",
                                                                            "value": "sender"
                                                                        },
                                                                        "id": 5042,
                                                                        "name": "Identifier",
                                                                        "src": "6071:6:22"
                                                                    }
                                                                ],
                                                                "id": 5043,
                                                                "name": "IndexAccess",
                                                                "src": "6065:13:22"
                                                            }
                                                        ],
                                                        "id": 5044,
                                                        "name": "BinaryOperation",
                                                        "src": "6032:46:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "46756e6473207472616e736665722066726f7a656e",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Funds transfer frozen\"",
                                                            "value": "Funds transfer frozen"
                                                        },
                                                        "id": 5045,
                                                        "name": "Literal",
                                                        "src": "6080:23:22"
                                                    }
                                                ],
                                                "id": 5046,
                                                "name": "FunctionCall",
                                                "src": "6024:80:22"
                                            }
                                        ],
                                        "id": 5047,
                                        "name": "ExpressionStatement",
                                        "src": "6024:80:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6207,
                                                            "type": "function (address,address,uint256)",
                                                            "value": "_beforeTokenTransfer"
                                                        },
                                                        "id": 5048,
                                                        "name": "Identifier",
                                                        "src": "6115:20:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5013,
                                                            "type": "address",
                                                            "value": "sender"
                                                        },
                                                        "id": 5049,
                                                        "name": "Identifier",
                                                        "src": "6136:6:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5015,
                                                            "type": "address",
                                                            "value": "recipient"
                                                        },
                                                        "id": 5050,
                                                        "name": "Identifier",
                                                        "src": "6144:9:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5017,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 5051,
                                                        "name": "Identifier",
                                                        "src": "6155:6:22"
                                                    }
                                                ],
                                                "id": 5052,
                                                "name": "FunctionCall",
                                                "src": "6115:47:22"
                                            }
                                        ],
                                        "id": 5053,
                                        "name": "ExpressionStatement",
                                        "src": "6115:47:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                3784
                                                            ],
                                                            "referencedDeclaration": 3784,
                                                            "type": "function (address,address,uint256)",
                                                            "value": "_transfer"
                                                        },
                                                        "id": 5054,
                                                        "name": "Identifier",
                                                        "src": "6173:9:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5013,
                                                            "type": "address",
                                                            "value": "sender"
                                                        },
                                                        "id": 5055,
                                                        "name": "Identifier",
                                                        "src": "6183:6:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5015,
                                                            "type": "address",
                                                            "value": "recipient"
                                                        },
                                                        "id": 5056,
                                                        "name": "Identifier",
                                                        "src": "6191:9:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5017,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 5057,
                                                        "name": "Identifier",
                                                        "src": "6202:6:22"
                                                    }
                                                ],
                                                "id": 5058,
                                                "name": "FunctionCall",
                                                "src": "6173:36:22"
                                            }
                                        ],
                                        "id": 5059,
                                        "name": "ExpressionStatement",
                                        "src": "6173:36:22"
                                    },
                                    {
                                        "attributes": {
                                            "falseBody": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "!=",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5013,
                                                            "type": "address",
                                                            "value": "sender"
                                                        },
                                                        "id": 5060,
                                                        "name": "Identifier",
                                                        "src": "6223:6:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "address payable",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        null
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 17,
                                                                    "type": "function () view returns (address payable)",
                                                                    "value": "_msgSender"
                                                                },
                                                                "id": 5061,
                                                                "name": "Identifier",
                                                                "src": "6233:10:22"
                                                            }
                                                        ],
                                                        "id": 5062,
                                                        "name": "FunctionCall",
                                                        "src": "6233:12:22"
                                                    }
                                                ],
                                                "id": 5063,
                                                "name": "BinaryOperation",
                                                "src": "6223:22:22"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "tuple()",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address_payable",
                                                                            "typeString": "address payable"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 787,
                                                                    "type": "function (address,address,uint256)",
                                                                    "value": "_approve"
                                                                },
                                                                "id": 5064,
                                                                "name": "Identifier",
                                                                "src": "6260:8:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5013,
                                                                    "type": "address",
                                                                    "value": "sender"
                                                                },
                                                                "id": 5065,
                                                                "name": "Identifier",
                                                                "src": "6269:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        null
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "address payable",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                null
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 17,
                                                                            "type": "function () view returns (address payable)",
                                                                            "value": "_msgSender"
                                                                        },
                                                                        "id": 5066,
                                                                        "name": "Identifier",
                                                                        "src": "6277:10:22"
                                                                    }
                                                                ],
                                                                "id": 5067,
                                                                "name": "FunctionCall",
                                                                "src": "6277:12:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330",
                                                                                    "typeString": "literal_string \"ERC20: transfer amount exceeds allowance\""
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "sub",
                                                                            "referencedDeclaration": 168,
                                                                            "type": "function (uint256,uint256,string memory) pure returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_address_payable",
                                                                                                    "typeString": "address payable"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 491,
                                                                                            "type": "function (address,address) view returns (uint256)",
                                                                                            "value": "allowance"
                                                                                        },
                                                                                        "id": 5068,
                                                                                        "name": "Identifier",
                                                                                        "src": "6291:9:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5013,
                                                                                            "type": "address",
                                                                                            "value": "sender"
                                                                                        },
                                                                                        "id": 5069,
                                                                                        "name": "Identifier",
                                                                                        "src": "6301:6:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "arguments": [
                                                                                                null
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "address payable",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 17,
                                                                                                    "type": "function () view returns (address payable)",
                                                                                                    "value": "_msgSender"
                                                                                                },
                                                                                                "id": 5070,
                                                                                                "name": "Identifier",
                                                                                                "src": "6309:10:22"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5071,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "6309:12:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5072,
                                                                                "name": "FunctionCall",
                                                                                "src": "6291:31:22"
                                                                            }
                                                                        ],
                                                                        "id": 5073,
                                                                        "name": "MemberAccess",
                                                                        "src": "6291:35:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5017,
                                                                            "type": "uint256",
                                                                            "value": "amount"
                                                                        },
                                                                        "id": 5074,
                                                                        "name": "Identifier",
                                                                        "src": "6327:6:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"ERC20: transfer amount exceeds allowance\"",
                                                                            "value": "ERC20: transfer amount exceeds allowance"
                                                                        },
                                                                        "id": 5075,
                                                                        "name": "Literal",
                                                                        "src": "6335:42:22"
                                                                    }
                                                                ],
                                                                "id": 5076,
                                                                "name": "FunctionCall",
                                                                "src": "6291:87:22"
                                                            }
                                                        ],
                                                        "id": 5077,
                                                        "name": "FunctionCall",
                                                        "src": "6260:119:22"
                                                    }
                                                ],
                                                "id": 5078,
                                                "name": "ExpressionStatement",
                                                "src": "6260:119:22"
                                            }
                                        ],
                                        "id": 5079,
                                        "name": "IfStatement",
                                        "src": "6220:159:22"
                                    },
                                    {
                                        "attributes": {
                                            "falseBody": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4592,
                                                                    "type": "mapping(address => uint256)",
                                                                    "value": "holderIndex"
                                                                },
                                                                "id": 5080,
                                                                "name": "Identifier",
                                                                "src": "6393:11:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5015,
                                                                    "type": "address",
                                                                    "value": "recipient"
                                                                },
                                                                "id": 5081,
                                                                "name": "Identifier",
                                                                "src": "6405:9:22"
                                                            }
                                                        ],
                                                        "id": 5082,
                                                        "name": "IndexAccess",
                                                        "src": "6393:22:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 5083,
                                                        "name": "Literal",
                                                        "src": "6417:1:22"
                                                    }
                                                ],
                                                "id": 5084,
                                                "name": "BinaryOperation",
                                                "src": "6393:25:22"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "push",
                                                                            "referencedDeclaration": null,
                                                                            "type": "function (address) returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4588,
                                                                                    "type": "address[] storage ref",
                                                                                    "value": "holders"
                                                                                },
                                                                                "id": 5085,
                                                                                "name": "Identifier",
                                                                                "src": "6434:7:22"
                                                                            }
                                                                        ],
                                                                        "id": 5087,
                                                                        "name": "MemberAccess",
                                                                        "src": "6434:12:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5015,
                                                                            "type": "address",
                                                                            "value": "recipient"
                                                                        },
                                                                        "id": 5088,
                                                                        "name": "Identifier",
                                                                        "src": "6447:9:22"
                                                                    }
                                                                ],
                                                                "id": 5089,
                                                                "name": "FunctionCall",
                                                                "src": "6434:23:22"
                                                            }
                                                        ],
                                                        "id": 5090,
                                                        "name": "ExpressionStatement",
                                                        "src": "6434:23:22"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4592,
                                                                                    "type": "mapping(address => uint256)",
                                                                                    "value": "holderIndex"
                                                                                },
                                                                                "id": 5091,
                                                                                "name": "Identifier",
                                                                                "src": "6472:11:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5015,
                                                                                    "type": "address",
                                                                                    "value": "recipient"
                                                                                },
                                                                                "id": 5092,
                                                                                "name": "Identifier",
                                                                                "src": "6484:9:22"
                                                                            }
                                                                        ],
                                                                        "id": 5093,
                                                                        "name": "IndexAccess",
                                                                        "src": "6472:22:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "length",
                                                                            "referencedDeclaration": null,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4588,
                                                                                    "type": "address[] storage ref",
                                                                                    "value": "holders"
                                                                                },
                                                                                "id": 5094,
                                                                                "name": "Identifier",
                                                                                "src": "6495:7:22"
                                                                            }
                                                                        ],
                                                                        "id": 5095,
                                                                        "name": "MemberAccess",
                                                                        "src": "6495:14:22"
                                                                    }
                                                                ],
                                                                "id": 5096,
                                                                "name": "Assignment",
                                                                "src": "6472:37:22"
                                                            }
                                                        ],
                                                        "id": 5097,
                                                        "name": "ExpressionStatement",
                                                        "src": "6472:37:22"
                                                    }
                                                ],
                                                "id": 5098,
                                                "name": "Block",
                                                "src": "6419:102:22"
                                            }
                                        ],
                                        "id": 5099,
                                        "name": "IfStatement",
                                        "src": "6390:131:22"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 5026
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "hexvalue": "74727565",
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "subdenomination": null,
                                                    "token": "bool",
                                                    "type": "bool",
                                                    "value": "true"
                                                },
                                                "id": 5100,
                                                "name": "Literal",
                                                "src": "6538:4:22"
                                            }
                                        ],
                                        "id": 5101,
                                        "name": "Return",
                                        "src": "6531:11:22"
                                    }
                                ],
                                "id": 5102,
                                "name": "Block",
                                "src": "5959:591:22"
                            }
                        ],
                        "id": 5103,
                        "name": "FunctionDefinition",
                        "src": "5826:724:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "increaseAllowance",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": 573,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "spender",
                                            "scope": 5136,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5104,
                                                "name": "ElementaryTypeName",
                                                "src": "6585:7:22"
                                            }
                                        ],
                                        "id": 5105,
                                        "name": "VariableDeclaration",
                                        "src": "6585:15:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "addedValue",
                                            "scope": 5136,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5106,
                                                "name": "ElementaryTypeName",
                                                "src": "6602:7:22"
                                            }
                                        ],
                                        "id": 5107,
                                        "name": "VariableDeclaration",
                                        "src": "6602:18:22"
                                    }
                                ],
                                "id": 5108,
                                "name": "ParameterList",
                                "src": "6584:37:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5136,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 5109,
                                                "name": "ElementaryTypeName",
                                                "src": "6638:4:22"
                                            }
                                        ],
                                        "id": 5110,
                                        "name": "VariableDeclaration",
                                        "src": "6638:4:22"
                                    }
                                ],
                                "id": 5111,
                                "name": "ParameterList",
                                "src": "6637:6:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                                    "typeString": "literal_string \"Contract paused\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5112,
                                                        "name": "Identifier",
                                                        "src": "6655:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9078,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 5113,
                                                                "name": "Identifier",
                                                                "src": "6663:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 5114,
                                                                "name": "Literal",
                                                                "src": "6673:5:22"
                                                            }
                                                        ],
                                                        "id": 5115,
                                                        "name": "BinaryOperation",
                                                        "src": "6663:15:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "436f6e747261637420706175736564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Contract paused\"",
                                                            "value": "Contract paused"
                                                        },
                                                        "id": 5116,
                                                        "name": "Literal",
                                                        "src": "6680:17:22"
                                                    }
                                                ],
                                                "id": 5117,
                                                "name": "FunctionCall",
                                                "src": "6655:43:22"
                                            }
                                        ],
                                        "id": 5118,
                                        "name": "ExpressionStatement",
                                        "src": "6655:43:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 787,
                                                            "type": "function (address,address,uint256)",
                                                            "value": "_approve"
                                                        },
                                                        "id": 5119,
                                                        "name": "Identifier",
                                                        "src": "6709:8:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "address payable",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        null
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 17,
                                                                    "type": "function () view returns (address payable)",
                                                                    "value": "_msgSender"
                                                                },
                                                                "id": 5120,
                                                                "name": "Identifier",
                                                                "src": "6718:10:22"
                                                            }
                                                        ],
                                                        "id": 5121,
                                                        "name": "FunctionCall",
                                                        "src": "6718:12:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5105,
                                                            "type": "address",
                                                            "value": "spender"
                                                        },
                                                        "id": 5122,
                                                        "name": "Identifier",
                                                        "src": "6732:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "add",
                                                                    "referencedDeclaration": 125,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address_payable",
                                                                                            "typeString": "address payable"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 491,
                                                                                    "type": "function (address,address) view returns (uint256)",
                                                                                    "value": "allowance"
                                                                                },
                                                                                "id": 5123,
                                                                                "name": "Identifier",
                                                                                "src": "6741:9:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "arguments": [
                                                                                        null
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "address payable",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                null
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 17,
                                                                                            "type": "function () view returns (address payable)",
                                                                                            "value": "_msgSender"
                                                                                        },
                                                                                        "id": 5124,
                                                                                        "name": "Identifier",
                                                                                        "src": "6751:10:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5125,
                                                                                "name": "FunctionCall",
                                                                                "src": "6751:12:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5105,
                                                                                    "type": "address",
                                                                                    "value": "spender"
                                                                                },
                                                                                "id": 5126,
                                                                                "name": "Identifier",
                                                                                "src": "6765:7:22"
                                                                            }
                                                                        ],
                                                                        "id": 5127,
                                                                        "name": "FunctionCall",
                                                                        "src": "6741:32:22"
                                                                    }
                                                                ],
                                                                "id": 5128,
                                                                "name": "MemberAccess",
                                                                "src": "6741:36:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5107,
                                                                    "type": "uint256",
                                                                    "value": "addedValue"
                                                                },
                                                                "id": 5129,
                                                                "name": "Identifier",
                                                                "src": "6778:10:22"
                                                            }
                                                        ],
                                                        "id": 5130,
                                                        "name": "FunctionCall",
                                                        "src": "6741:48:22"
                                                    }
                                                ],
                                                "id": 5131,
                                                "name": "FunctionCall",
                                                "src": "6709:81:22"
                                            }
                                        ],
                                        "id": 5132,
                                        "name": "ExpressionStatement",
                                        "src": "6709:81:22"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 5111
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "hexvalue": "74727565",
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "subdenomination": null,
                                                    "token": "bool",
                                                    "type": "bool",
                                                    "value": "true"
                                                },
                                                "id": 5133,
                                                "name": "Literal",
                                                "src": "6808:4:22"
                                            }
                                        ],
                                        "id": 5134,
                                        "name": "Return",
                                        "src": "6801:11:22"
                                    }
                                ],
                                "id": 5135,
                                "name": "Block",
                                "src": "6644:176:22"
                            }
                        ],
                        "id": 5136,
                        "name": "FunctionDefinition",
                        "src": "6558:262:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "decreaseAllowance",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": 601,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "spender",
                                            "scope": 5170,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5137,
                                                "name": "ElementaryTypeName",
                                                "src": "6855:7:22"
                                            }
                                        ],
                                        "id": 5138,
                                        "name": "VariableDeclaration",
                                        "src": "6855:15:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "subtractedValue",
                                            "scope": 5170,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5139,
                                                "name": "ElementaryTypeName",
                                                "src": "6872:7:22"
                                            }
                                        ],
                                        "id": 5140,
                                        "name": "VariableDeclaration",
                                        "src": "6872:23:22"
                                    }
                                ],
                                "id": 5141,
                                "name": "ParameterList",
                                "src": "6854:42:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5170,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 5142,
                                                "name": "ElementaryTypeName",
                                                "src": "6913:4:22"
                                            }
                                        ],
                                        "id": 5143,
                                        "name": "VariableDeclaration",
                                        "src": "6913:4:22"
                                    }
                                ],
                                "id": 5144,
                                "name": "ParameterList",
                                "src": "6912:6:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                                    "typeString": "literal_string \"Contract paused\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5145,
                                                        "name": "Identifier",
                                                        "src": "6930:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9078,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 5146,
                                                                "name": "Identifier",
                                                                "src": "6938:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 5147,
                                                                "name": "Literal",
                                                                "src": "6948:5:22"
                                                            }
                                                        ],
                                                        "id": 5148,
                                                        "name": "BinaryOperation",
                                                        "src": "6938:15:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "436f6e747261637420706175736564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Contract paused\"",
                                                            "value": "Contract paused"
                                                        },
                                                        "id": 5149,
                                                        "name": "Literal",
                                                        "src": "6955:17:22"
                                                    }
                                                ],
                                                "id": 5150,
                                                "name": "FunctionCall",
                                                "src": "6930:43:22"
                                            }
                                        ],
                                        "id": 5151,
                                        "name": "ExpressionStatement",
                                        "src": "6930:43:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 787,
                                                            "type": "function (address,address,uint256)",
                                                            "value": "_approve"
                                                        },
                                                        "id": 5152,
                                                        "name": "Identifier",
                                                        "src": "6984:8:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "address payable",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        null
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 17,
                                                                    "type": "function () view returns (address payable)",
                                                                    "value": "_msgSender"
                                                                },
                                                                "id": 5153,
                                                                "name": "Identifier",
                                                                "src": "6993:10:22"
                                                            }
                                                        ],
                                                        "id": 5154,
                                                        "name": "FunctionCall",
                                                        "src": "6993:12:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5138,
                                                            "type": "address",
                                                            "value": "spender"
                                                        },
                                                        "id": 5155,
                                                        "name": "Identifier",
                                                        "src": "7007:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8",
                                                                            "typeString": "literal_string \"ERC20: decreased allowance below zero\""
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sub",
                                                                    "referencedDeclaration": 168,
                                                                    "type": "function (uint256,uint256,string memory) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address_payable",
                                                                                            "typeString": "address payable"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 491,
                                                                                    "type": "function (address,address) view returns (uint256)",
                                                                                    "value": "allowance"
                                                                                },
                                                                                "id": 5156,
                                                                                "name": "Identifier",
                                                                                "src": "7016:9:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "arguments": [
                                                                                        null
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "address payable",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                null
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 17,
                                                                                            "type": "function () view returns (address payable)",
                                                                                            "value": "_msgSender"
                                                                                        },
                                                                                        "id": 5157,
                                                                                        "name": "Identifier",
                                                                                        "src": "7026:10:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5158,
                                                                                "name": "FunctionCall",
                                                                                "src": "7026:12:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5138,
                                                                                    "type": "address",
                                                                                    "value": "spender"
                                                                                },
                                                                                "id": 5159,
                                                                                "name": "Identifier",
                                                                                "src": "7040:7:22"
                                                                            }
                                                                        ],
                                                                        "id": 5160,
                                                                        "name": "FunctionCall",
                                                                        "src": "7016:32:22"
                                                                    }
                                                                ],
                                                                "id": 5161,
                                                                "name": "MemberAccess",
                                                                "src": "7016:36:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5140,
                                                                    "type": "uint256",
                                                                    "value": "subtractedValue"
                                                                },
                                                                "id": 5162,
                                                                "name": "Identifier",
                                                                "src": "7053:15:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "string",
                                                                    "type": "literal_string \"ERC20: decreased allowance below zero\"",
                                                                    "value": "ERC20: decreased allowance below zero"
                                                                },
                                                                "id": 5163,
                                                                "name": "Literal",
                                                                "src": "7070:39:22"
                                                            }
                                                        ],
                                                        "id": 5164,
                                                        "name": "FunctionCall",
                                                        "src": "7016:94:22"
                                                    }
                                                ],
                                                "id": 5165,
                                                "name": "FunctionCall",
                                                "src": "6984:127:22"
                                            }
                                        ],
                                        "id": 5166,
                                        "name": "ExpressionStatement",
                                        "src": "6984:127:22"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 5144
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "hexvalue": "74727565",
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "subdenomination": null,
                                                    "token": "bool",
                                                    "type": "bool",
                                                    "value": "true"
                                                },
                                                "id": 5167,
                                                "name": "Literal",
                                                "src": "7129:4:22"
                                            }
                                        ],
                                        "id": 5168,
                                        "name": "Return",
                                        "src": "7122:11:22"
                                    }
                                ],
                                "id": 5169,
                                "name": "Block",
                                "src": "6919:222:22"
                            }
                        ],
                        "id": 5170,
                        "name": "FunctionDefinition",
                        "src": "6828:313:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "freeze",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "holder",
                                            "scope": 5201,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5171,
                                                "name": "ElementaryTypeName",
                                                "src": "7165:7:22"
                                            }
                                        ],
                                        "id": 5172,
                                        "name": "VariableDeclaration",
                                        "src": "7165:14:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 5201,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5173,
                                                "name": "ElementaryTypeName",
                                                "src": "7181:7:22"
                                            }
                                        ],
                                        "id": 5174,
                                        "name": "VariableDeclaration",
                                        "src": "7181:14:22"
                                    }
                                ],
                                "id": 5175,
                                "name": "ParameterList",
                                "src": "7164:32:22"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5180,
                                "name": "ParameterList",
                                "src": "7234:0:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 4681,
                                            "type": "modifier (address)",
                                            "value": "onlyIssueManager"
                                        },
                                        "id": 5176,
                                        "name": "Identifier",
                                        "src": "7204:16:22"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                null
                                            ],
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "isStructConstructorCall": false,
                                            "lValueRequested": false,
                                            "names": [
                                                null
                                            ],
                                            "type": "address payable",
                                            "type_conversion": false
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": [
                                                        null
                                                    ],
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 17,
                                                    "type": "function () view returns (address payable)",
                                                    "value": "_msgSender"
                                                },
                                                "id": 5177,
                                                "name": "Identifier",
                                                "src": "7221:10:22"
                                            }
                                        ],
                                        "id": 5178,
                                        "name": "FunctionCall",
                                        "src": "7221:12:22"
                                    }
                                ],
                                "id": 5179,
                                "name": "ModifierInvocation",
                                "src": "7204:30:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                                    "typeString": "literal_string \"Contract paused\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5181,
                                                        "name": "Identifier",
                                                        "src": "7245:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9078,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 5182,
                                                                "name": "Identifier",
                                                                "src": "7253:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 5183,
                                                                "name": "Literal",
                                                                "src": "7263:5:22"
                                                            }
                                                        ],
                                                        "id": 5184,
                                                        "name": "BinaryOperation",
                                                        "src": "7253:15:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "436f6e747261637420706175736564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Contract paused\"",
                                                            "value": "Contract paused"
                                                        },
                                                        "id": 5185,
                                                        "name": "Literal",
                                                        "src": "7270:17:22"
                                                    }
                                                ],
                                                "id": 5186,
                                                "name": "FunctionCall",
                                                "src": "7245:43:22"
                                            }
                                        ],
                                        "id": 5187,
                                        "name": "ExpressionStatement",
                                        "src": "7245:43:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4596,
                                                                    "type": "mapping(address => uint256)",
                                                                    "value": "froze"
                                                                },
                                                                "id": 5188,
                                                                "name": "Identifier",
                                                                "src": "7299:5:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5172,
                                                                    "type": "address",
                                                                    "value": "holder"
                                                                },
                                                                "id": 5189,
                                                                "name": "Identifier",
                                                                "src": "7305:6:22"
                                                            }
                                                        ],
                                                        "id": 5190,
                                                        "name": "IndexAccess",
                                                        "src": "7299:13:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5174,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 5191,
                                                        "name": "Identifier",
                                                        "src": "7315:6:22"
                                                    }
                                                ],
                                                "id": 5192,
                                                "name": "Assignment",
                                                "src": "7299:22:22"
                                            }
                                        ],
                                        "id": 5193,
                                        "name": "ExpressionStatement",
                                        "src": "7299:22:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4610,
                                                            "type": "function (address,address)",
                                                            "value": "Freeze"
                                                        },
                                                        "id": 5194,
                                                        "name": "Identifier",
                                                        "src": "7337:6:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "address payable",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        null
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 17,
                                                                    "type": "function () view returns (address payable)",
                                                                    "value": "_msgSender"
                                                                },
                                                                "id": 5195,
                                                                "name": "Identifier",
                                                                "src": "7344:10:22"
                                                            }
                                                        ],
                                                        "id": 5196,
                                                        "name": "FunctionCall",
                                                        "src": "7344:12:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5172,
                                                            "type": "address",
                                                            "value": "holder"
                                                        },
                                                        "id": 5197,
                                                        "name": "Identifier",
                                                        "src": "7358:6:22"
                                                    }
                                                ],
                                                "id": 5198,
                                                "name": "FunctionCall",
                                                "src": "7337:28:22"
                                            }
                                        ],
                                        "id": 5199,
                                        "name": "EmitStatement",
                                        "src": "7332:33:22"
                                    }
                                ],
                                "id": 5200,
                                "name": "Block",
                                "src": "7234:139:22"
                            }
                        ],
                        "id": 5201,
                        "name": "FunctionDefinition",
                        "src": "7149:224:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "unfreeze",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "holder",
                                            "scope": 5230,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5202,
                                                "name": "ElementaryTypeName",
                                                "src": "7399:7:22"
                                            }
                                        ],
                                        "id": 5203,
                                        "name": "VariableDeclaration",
                                        "src": "7399:14:22"
                                    }
                                ],
                                "id": 5204,
                                "name": "ParameterList",
                                "src": "7398:16:22"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5209,
                                "name": "ParameterList",
                                "src": "7453:0:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 4681,
                                            "type": "modifier (address)",
                                            "value": "onlyIssueManager"
                                        },
                                        "id": 5205,
                                        "name": "Identifier",
                                        "src": "7422:16:22"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                null
                                            ],
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "isStructConstructorCall": false,
                                            "lValueRequested": false,
                                            "names": [
                                                null
                                            ],
                                            "type": "address payable",
                                            "type_conversion": false
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": [
                                                        null
                                                    ],
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 17,
                                                    "type": "function () view returns (address payable)",
                                                    "value": "_msgSender"
                                                },
                                                "id": 5206,
                                                "name": "Identifier",
                                                "src": "7439:10:22"
                                            }
                                        ],
                                        "id": 5207,
                                        "name": "FunctionCall",
                                        "src": "7439:12:22"
                                    }
                                ],
                                "id": 5208,
                                "name": "ModifierInvocation",
                                "src": "7422:30:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                                    "typeString": "literal_string \"Contract paused\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5210,
                                                        "name": "Identifier",
                                                        "src": "7464:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9078,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 5211,
                                                                "name": "Identifier",
                                                                "src": "7472:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 5212,
                                                                "name": "Literal",
                                                                "src": "7482:5:22"
                                                            }
                                                        ],
                                                        "id": 5213,
                                                        "name": "BinaryOperation",
                                                        "src": "7472:15:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "436f6e747261637420706175736564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Contract paused\"",
                                                            "value": "Contract paused"
                                                        },
                                                        "id": 5214,
                                                        "name": "Literal",
                                                        "src": "7489:17:22"
                                                    }
                                                ],
                                                "id": 5215,
                                                "name": "FunctionCall",
                                                "src": "7464:43:22"
                                            }
                                        ],
                                        "id": 5216,
                                        "name": "ExpressionStatement",
                                        "src": "7464:43:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 4596,
                                                                    "type": "mapping(address => uint256)",
                                                                    "value": "froze"
                                                                },
                                                                "id": 5217,
                                                                "name": "Identifier",
                                                                "src": "7518:5:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5203,
                                                                    "type": "address",
                                                                    "value": "holder"
                                                                },
                                                                "id": 5218,
                                                                "name": "Identifier",
                                                                "src": "7524:6:22"
                                                            }
                                                        ],
                                                        "id": 5219,
                                                        "name": "IndexAccess",
                                                        "src": "7518:13:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 5220,
                                                        "name": "Literal",
                                                        "src": "7534:1:22"
                                                    }
                                                ],
                                                "id": 5221,
                                                "name": "Assignment",
                                                "src": "7518:17:22"
                                            }
                                        ],
                                        "id": 5222,
                                        "name": "ExpressionStatement",
                                        "src": "7518:17:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4616,
                                                            "type": "function (address,address)",
                                                            "value": "Unfreeze"
                                                        },
                                                        "id": 5223,
                                                        "name": "Identifier",
                                                        "src": "7551:8:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "address payable",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        null
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 17,
                                                                    "type": "function () view returns (address payable)",
                                                                    "value": "_msgSender"
                                                                },
                                                                "id": 5224,
                                                                "name": "Identifier",
                                                                "src": "7560:10:22"
                                                            }
                                                        ],
                                                        "id": 5225,
                                                        "name": "FunctionCall",
                                                        "src": "7560:12:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5203,
                                                            "type": "address",
                                                            "value": "holder"
                                                        },
                                                        "id": 5226,
                                                        "name": "Identifier",
                                                        "src": "7574:6:22"
                                                    }
                                                ],
                                                "id": 5227,
                                                "name": "FunctionCall",
                                                "src": "7551:30:22"
                                            }
                                        ],
                                        "id": 5228,
                                        "name": "EmitStatement",
                                        "src": "7546:35:22"
                                    }
                                ],
                                "id": 5229,
                                "name": "Block",
                                "src": "7453:136:22"
                            }
                        ],
                        "id": 5230,
                        "name": "FunctionDefinition",
                        "src": "7381:208:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "frozen",
                            "scope": 5917,
                            "stateMutability": "view",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "account",
                                            "scope": 5249,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5231,
                                                "name": "ElementaryTypeName",
                                                "src": "7613:7:22"
                                            }
                                        ],
                                        "id": 5232,
                                        "name": "VariableDeclaration",
                                        "src": "7613:15:22"
                                    }
                                ],
                                "id": 5233,
                                "name": "ParameterList",
                                "src": "7612:17:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5249,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5234,
                                                "name": "ElementaryTypeName",
                                                "src": "7651:7:22"
                                            }
                                        ],
                                        "id": 5235,
                                        "name": "VariableDeclaration",
                                        "src": "7651:7:22"
                                    }
                                ],
                                "id": 5236,
                                "name": "ParameterList",
                                "src": "7650:9:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                                    "typeString": "literal_string \"Contract paused\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5237,
                                                        "name": "Identifier",
                                                        "src": "7671:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9078,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 5238,
                                                                "name": "Identifier",
                                                                "src": "7679:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 5239,
                                                                "name": "Literal",
                                                                "src": "7689:5:22"
                                                            }
                                                        ],
                                                        "id": 5240,
                                                        "name": "BinaryOperation",
                                                        "src": "7679:15:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "436f6e747261637420706175736564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Contract paused\"",
                                                            "value": "Contract paused"
                                                        },
                                                        "id": 5241,
                                                        "name": "Literal",
                                                        "src": "7696:17:22"
                                                    }
                                                ],
                                                "id": 5242,
                                                "name": "FunctionCall",
                                                "src": "7671:43:22"
                                            }
                                        ],
                                        "id": 5243,
                                        "name": "ExpressionStatement",
                                        "src": "7671:43:22"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 5236
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4596,
                                                            "type": "mapping(address => uint256)",
                                                            "value": "froze"
                                                        },
                                                        "id": 5244,
                                                        "name": "Identifier",
                                                        "src": "7732:5:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5232,
                                                            "type": "address",
                                                            "value": "account"
                                                        },
                                                        "id": 5245,
                                                        "name": "Identifier",
                                                        "src": "7738:7:22"
                                                    }
                                                ],
                                                "id": 5246,
                                                "name": "IndexAccess",
                                                "src": "7732:14:22"
                                            }
                                        ],
                                        "id": 5247,
                                        "name": "Return",
                                        "src": "7725:21:22"
                                    }
                                ],
                                "id": 5248,
                                "name": "Block",
                                "src": "7660:94:22"
                            }
                        ],
                        "id": 5249,
                        "name": "FunctionDefinition",
                        "src": "7597:157:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "burn",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "holder",
                                            "scope": 5286,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5250,
                                                "name": "ElementaryTypeName",
                                                "src": "7776:7:22"
                                            }
                                        ],
                                        "id": 5251,
                                        "name": "VariableDeclaration",
                                        "src": "7776:14:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 5286,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5252,
                                                "name": "ElementaryTypeName",
                                                "src": "7792:7:22"
                                            }
                                        ],
                                        "id": 5253,
                                        "name": "VariableDeclaration",
                                        "src": "7792:14:22"
                                    }
                                ],
                                "id": 5254,
                                "name": "ParameterList",
                                "src": "7775:32:22"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5259,
                                "name": "ParameterList",
                                "src": "7846:0:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 4681,
                                            "type": "modifier (address)",
                                            "value": "onlyIssueManager"
                                        },
                                        "id": 5255,
                                        "name": "Identifier",
                                        "src": "7815:16:22"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                null
                                            ],
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "isStructConstructorCall": false,
                                            "lValueRequested": false,
                                            "names": [
                                                null
                                            ],
                                            "type": "address payable",
                                            "type_conversion": false
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": [
                                                        null
                                                    ],
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 17,
                                                    "type": "function () view returns (address payable)",
                                                    "value": "_msgSender"
                                                },
                                                "id": 5256,
                                                "name": "Identifier",
                                                "src": "7832:10:22"
                                            }
                                        ],
                                        "id": 5257,
                                        "name": "FunctionCall",
                                        "src": "7832:12:22"
                                    }
                                ],
                                "id": 5258,
                                "name": "ModifierInvocation",
                                "src": "7815:30:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                                    "typeString": "literal_string \"Contract paused\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5260,
                                                        "name": "Identifier",
                                                        "src": "7857:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9078,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 5261,
                                                                "name": "Identifier",
                                                                "src": "7865:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 5262,
                                                                "name": "Literal",
                                                                "src": "7875:5:22"
                                                            }
                                                        ],
                                                        "id": 5263,
                                                        "name": "BinaryOperation",
                                                        "src": "7865:15:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "436f6e747261637420706175736564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Contract paused\"",
                                                            "value": "Contract paused"
                                                        },
                                                        "id": 5264,
                                                        "name": "Literal",
                                                        "src": "7882:17:22"
                                                    }
                                                ],
                                                "id": 5265,
                                                "name": "FunctionCall",
                                                "src": "7857:43:22"
                                            }
                                        ],
                                        "id": 5266,
                                        "name": "ExpressionStatement",
                                        "src": "7857:43:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6207,
                                                            "type": "function (address,address,uint256)",
                                                            "value": "_beforeTokenTransfer"
                                                        },
                                                        "id": 5267,
                                                        "name": "Identifier",
                                                        "src": "7911:20:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5251,
                                                            "type": "address",
                                                            "value": "holder"
                                                        },
                                                        "id": 5268,
                                                        "name": "Identifier",
                                                        "src": "7932:6:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "address payable",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                            "typeString": "int_const 0"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)",
                                                                    "value": "address"
                                                                },
                                                                "id": 5269,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "7940:7:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "307830",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0x0"
                                                                },
                                                                "id": 5270,
                                                                "name": "Literal",
                                                                "src": "7948:3:22"
                                                            }
                                                        ],
                                                        "id": 5271,
                                                        "name": "FunctionCall",
                                                        "src": "7940:12:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5253,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 5272,
                                                        "name": "Identifier",
                                                        "src": "7954:6:22"
                                                    }
                                                ],
                                                "id": 5273,
                                                "name": "FunctionCall",
                                                "src": "7911:50:22"
                                            }
                                        ],
                                        "id": 5274,
                                        "name": "ExpressionStatement",
                                        "src": "7911:50:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                3848
                                                            ],
                                                            "referencedDeclaration": 3848,
                                                            "type": "function (address,uint256)",
                                                            "value": "_burn"
                                                        },
                                                        "id": 5275,
                                                        "name": "Identifier",
                                                        "src": "7972:5:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5251,
                                                            "type": "address",
                                                            "value": "holder"
                                                        },
                                                        "id": 5276,
                                                        "name": "Identifier",
                                                        "src": "7978:6:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5253,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 5277,
                                                        "name": "Identifier",
                                                        "src": "7986:6:22"
                                                    }
                                                ],
                                                "id": 5278,
                                                "name": "FunctionCall",
                                                "src": "7972:21:22"
                                            }
                                        ],
                                        "id": 5279,
                                        "name": "ExpressionStatement",
                                        "src": "7972:21:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4622,
                                                            "type": "function (address,uint256)",
                                                            "value": "Burn"
                                                        },
                                                        "id": 5280,
                                                        "name": "Identifier",
                                                        "src": "8016:4:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5251,
                                                            "type": "address",
                                                            "value": "holder"
                                                        },
                                                        "id": 5281,
                                                        "name": "Identifier",
                                                        "src": "8021:6:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5253,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 5282,
                                                        "name": "Identifier",
                                                        "src": "8029:6:22"
                                                    }
                                                ],
                                                "id": 5283,
                                                "name": "FunctionCall",
                                                "src": "8016:20:22"
                                            }
                                        ],
                                        "id": 5284,
                                        "name": "EmitStatement",
                                        "src": "8011:25:22"
                                    }
                                ],
                                "id": 5285,
                                "name": "Block",
                                "src": "7846:199:22"
                            }
                        ],
                        "id": 5286,
                        "name": "FunctionDefinition",
                        "src": "7762:283:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "burnAll",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5287,
                                "name": "ParameterList",
                                "src": "8069:2:22"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5292,
                                "name": "ParameterList",
                                "src": "8110:0:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 4681,
                                            "type": "modifier (address)",
                                            "value": "onlyIssueManager"
                                        },
                                        "id": 5288,
                                        "name": "Identifier",
                                        "src": "8079:16:22"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                null
                                            ],
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "isStructConstructorCall": false,
                                            "lValueRequested": false,
                                            "names": [
                                                null
                                            ],
                                            "type": "address payable",
                                            "type_conversion": false
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": [
                                                        null
                                                    ],
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 17,
                                                    "type": "function () view returns (address payable)",
                                                    "value": "_msgSender"
                                                },
                                                "id": 5289,
                                                "name": "Identifier",
                                                "src": "8096:10:22"
                                            }
                                        ],
                                        "id": 5290,
                                        "name": "FunctionCall",
                                        "src": "8096:12:22"
                                    }
                                ],
                                "id": 5291,
                                "name": "ModifierInvocation",
                                "src": "8079:30:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                                    "typeString": "literal_string \"Contract paused\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5293,
                                                        "name": "Identifier",
                                                        "src": "8121:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9078,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 5294,
                                                                "name": "Identifier",
                                                                "src": "8129:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 5295,
                                                                "name": "Literal",
                                                                "src": "8139:5:22"
                                                            }
                                                        ],
                                                        "id": 5296,
                                                        "name": "BinaryOperation",
                                                        "src": "8129:15:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "436f6e747261637420706175736564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Contract paused\"",
                                                            "value": "Contract paused"
                                                        },
                                                        "id": 5297,
                                                        "name": "Literal",
                                                        "src": "8146:17:22"
                                                    }
                                                ],
                                                "id": 5298,
                                                "name": "FunctionCall",
                                                "src": "8121:43:22"
                                            }
                                        ],
                                        "id": 5299,
                                        "name": "ExpressionStatement",
                                        "src": "8121:43:22"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                5301
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "length",
                                                    "scope": 5342,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint",
                                                            "type": "uint256"
                                                        },
                                                        "id": 5300,
                                                        "name": "ElementaryTypeName",
                                                        "src": "8175:4:22"
                                                    }
                                                ],
                                                "id": 5301,
                                                "name": "VariableDeclaration",
                                                "src": "8175:11:22"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "member_name": "length",
                                                    "referencedDeclaration": null,
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4588,
                                                            "type": "address[] storage ref",
                                                            "value": "holders"
                                                        },
                                                        "id": 5302,
                                                        "name": "Identifier",
                                                        "src": "8189:7:22"
                                                    }
                                                ],
                                                "id": 5303,
                                                "name": "MemberAccess",
                                                "src": "8189:14:22"
                                            }
                                        ],
                                        "id": 5304,
                                        "name": "VariableDeclarationStatement",
                                        "src": "8175:28:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "assignments": [
                                                        5306
                                                    ]
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "constant": false,
                                                            "name": "i",
                                                            "scope": 5341,
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "type": "uint256",
                                                            "value": null,
                                                            "visibility": "internal"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "uint256",
                                                                    "type": "uint256"
                                                                },
                                                                "id": 5305,
                                                                "name": "ElementaryTypeName",
                                                                "src": "8218:7:22"
                                                            }
                                                        ],
                                                        "id": 5306,
                                                        "name": "VariableDeclaration",
                                                        "src": "8218:9:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 5307,
                                                        "name": "Literal",
                                                        "src": "8228:1:22"
                                                    }
                                                ],
                                                "id": 5308,
                                                "name": "VariableDeclarationStatement",
                                                "src": "8218:11:22"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "<",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5306,
                                                            "type": "uint256",
                                                            "value": "i"
                                                        },
                                                        "id": 5309,
                                                        "name": "Identifier",
                                                        "src": "8231:1:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5301,
                                                            "type": "uint256",
                                                            "value": "length"
                                                        },
                                                        "id": 5310,
                                                        "name": "Identifier",
                                                        "src": "8233:6:22"
                                                    }
                                                ],
                                                "id": 5311,
                                                "name": "BinaryOperation",
                                                "src": "8231:8:22"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "++",
                                                            "prefix": false,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5306,
                                                                    "type": "uint256",
                                                                    "value": "i"
                                                                },
                                                                "id": 5312,
                                                                "name": "Identifier",
                                                                "src": "8241:1:22"
                                                            }
                                                        ],
                                                        "id": 5313,
                                                        "name": "UnaryOperation",
                                                        "src": "8241:3:22"
                                                    }
                                                ],
                                                "id": 5314,
                                                "name": "ExpressionStatement",
                                                "src": "8241:3:22"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address_payable",
                                                                                    "typeString": "address payable"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6207,
                                                                            "type": "function (address,address,uint256)",
                                                                            "value": "_beforeTokenTransfer"
                                                                        },
                                                                        "id": 5315,
                                                                        "name": "Identifier",
                                                                        "src": "8260:20:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4588,
                                                                                    "type": "address[] storage ref",
                                                                                    "value": "holders"
                                                                                },
                                                                                "id": 5316,
                                                                                "name": "Identifier",
                                                                                "src": "8281:7:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5306,
                                                                                    "type": "uint256",
                                                                                    "value": "i"
                                                                                },
                                                                                "id": 5317,
                                                                                "name": "Identifier",
                                                                                "src": "8289:1:22"
                                                                            }
                                                                        ],
                                                                        "id": 5318,
                                                                        "name": "IndexAccess",
                                                                        "src": "8281:10:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "address payable",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                                            "typeString": "int_const 0"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "type": "type(address)",
                                                                                    "value": "address"
                                                                                },
                                                                                "id": 5319,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "8293:7:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "hexvalue": "307830",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "subdenomination": null,
                                                                                    "token": "number",
                                                                                    "type": "int_const 0",
                                                                                    "value": "0x0"
                                                                                },
                                                                                "id": 5320,
                                                                                "name": "Literal",
                                                                                "src": "8301:3:22"
                                                                            }
                                                                        ],
                                                                        "id": 5321,
                                                                        "name": "FunctionCall",
                                                                        "src": "8293:12:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 456,
                                                                                    "type": "function (address) view returns (uint256)",
                                                                                    "value": "balanceOf"
                                                                                },
                                                                                "id": 5322,
                                                                                "name": "Identifier",
                                                                                "src": "8307:9:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4588,
                                                                                            "type": "address[] storage ref",
                                                                                            "value": "holders"
                                                                                        },
                                                                                        "id": 5323,
                                                                                        "name": "Identifier",
                                                                                        "src": "8317:7:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5306,
                                                                                            "type": "uint256",
                                                                                            "value": "i"
                                                                                        },
                                                                                        "id": 5324,
                                                                                        "name": "Identifier",
                                                                                        "src": "8325:1:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5325,
                                                                                "name": "IndexAccess",
                                                                                "src": "8317:10:22"
                                                                            }
                                                                        ],
                                                                        "id": 5326,
                                                                        "name": "FunctionCall",
                                                                        "src": "8307:21:22"
                                                                    }
                                                                ],
                                                                "id": 5327,
                                                                "name": "FunctionCall",
                                                                "src": "8260:69:22"
                                                            }
                                                        ],
                                                        "id": 5328,
                                                        "name": "ExpressionStatement",
                                                        "src": "8260:69:22"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                3848
                                                                            ],
                                                                            "referencedDeclaration": 3848,
                                                                            "type": "function (address,uint256)",
                                                                            "value": "_burn"
                                                                        },
                                                                        "id": 5329,
                                                                        "name": "Identifier",
                                                                        "src": "8344:5:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4588,
                                                                                    "type": "address[] storage ref",
                                                                                    "value": "holders"
                                                                                },
                                                                                "id": 5330,
                                                                                "name": "Identifier",
                                                                                "src": "8350:7:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5306,
                                                                                    "type": "uint256",
                                                                                    "value": "i"
                                                                                },
                                                                                "id": 5331,
                                                                                "name": "Identifier",
                                                                                "src": "8358:1:22"
                                                                            }
                                                                        ],
                                                                        "id": 5332,
                                                                        "name": "IndexAccess",
                                                                        "src": "8350:10:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 456,
                                                                                    "type": "function (address) view returns (uint256)",
                                                                                    "value": "balanceOf"
                                                                                },
                                                                                "id": 5333,
                                                                                "name": "Identifier",
                                                                                "src": "8362:9:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4588,
                                                                                            "type": "address[] storage ref",
                                                                                            "value": "holders"
                                                                                        },
                                                                                        "id": 5334,
                                                                                        "name": "Identifier",
                                                                                        "src": "8372:7:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5306,
                                                                                            "type": "uint256",
                                                                                            "value": "i"
                                                                                        },
                                                                                        "id": 5335,
                                                                                        "name": "Identifier",
                                                                                        "src": "8380:1:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5336,
                                                                                "name": "IndexAccess",
                                                                                "src": "8372:10:22"
                                                                            }
                                                                        ],
                                                                        "id": 5337,
                                                                        "name": "FunctionCall",
                                                                        "src": "8362:21:22"
                                                                    }
                                                                ],
                                                                "id": 5338,
                                                                "name": "FunctionCall",
                                                                "src": "8344:40:22"
                                                            }
                                                        ],
                                                        "id": 5339,
                                                        "name": "ExpressionStatement",
                                                        "src": "8344:40:22"
                                                    }
                                                ],
                                                "id": 5340,
                                                "name": "Block",
                                                "src": "8245:151:22"
                                            }
                                        ],
                                        "id": 5341,
                                        "name": "ForStatement",
                                        "src": "8214:182:22"
                                    }
                                ],
                                "id": 5342,
                                "name": "Block",
                                "src": "8110:297:22"
                            }
                        ],
                        "id": 5343,
                        "name": "FunctionDefinition",
                        "src": "8053:354:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "scheduleSnapshot",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "time",
                                            "scope": 5364,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5344,
                                                "name": "ElementaryTypeName",
                                                "src": "8441:7:22"
                                            }
                                        ],
                                        "id": 5345,
                                        "name": "VariableDeclaration",
                                        "src": "8441:12:22"
                                    }
                                ],
                                "id": 5346,
                                "name": "ParameterList",
                                "src": "8440:14:22"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5351,
                                "name": "ParameterList",
                                "src": "8493:0:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 4681,
                                            "type": "modifier (address)",
                                            "value": "onlyIssueManager"
                                        },
                                        "id": 5347,
                                        "name": "Identifier",
                                        "src": "8462:16:22"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                null
                                            ],
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "isStructConstructorCall": false,
                                            "lValueRequested": false,
                                            "names": [
                                                null
                                            ],
                                            "type": "address payable",
                                            "type_conversion": false
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": [
                                                        null
                                                    ],
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 17,
                                                    "type": "function () view returns (address payable)",
                                                    "value": "_msgSender"
                                                },
                                                "id": 5348,
                                                "name": "Identifier",
                                                "src": "8479:10:22"
                                            }
                                        ],
                                        "id": 5349,
                                        "name": "FunctionCall",
                                        "src": "8479:12:22"
                                    }
                                ],
                                "id": 5350,
                                "name": "ModifierInvocation",
                                "src": "8462:30:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                                    "typeString": "literal_string \"Contract paused\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5352,
                                                        "name": "Identifier",
                                                        "src": "8504:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9078,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 5353,
                                                                "name": "Identifier",
                                                                "src": "8512:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 5354,
                                                                "name": "Literal",
                                                                "src": "8522:5:22"
                                                            }
                                                        ],
                                                        "id": 5355,
                                                        "name": "BinaryOperation",
                                                        "src": "8512:15:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "436f6e747261637420706175736564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Contract paused\"",
                                                            "value": "Contract paused"
                                                        },
                                                        "id": 5356,
                                                        "name": "Literal",
                                                        "src": "8529:17:22"
                                                    }
                                                ],
                                                "id": 5357,
                                                "name": "FunctionCall",
                                                "src": "8504:43:22"
                                            }
                                        ],
                                        "id": 5358,
                                        "name": "ExpressionStatement",
                                        "src": "8504:43:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5999,
                                                            "type": "function (uint256)",
                                                            "value": "_scheduleSnapshot"
                                                        },
                                                        "id": 5359,
                                                        "name": "Identifier",
                                                        "src": "8558:17:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5345,
                                                            "type": "uint256",
                                                            "value": "time"
                                                        },
                                                        "id": 5360,
                                                        "name": "Identifier",
                                                        "src": "8576:4:22"
                                                    }
                                                ],
                                                "id": 5361,
                                                "name": "FunctionCall",
                                                "src": "8558:23:22"
                                            }
                                        ],
                                        "id": 5362,
                                        "name": "ExpressionStatement",
                                        "src": "8558:23:22"
                                    }
                                ],
                                "id": 5363,
                                "name": "Block",
                                "src": "8493:96:22"
                            }
                        ],
                        "id": 5364,
                        "name": "FunctionDefinition",
                        "src": "8415:174:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "rescheduleSnapshot",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "oldTime",
                                            "scope": 5388,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5365,
                                                "name": "ElementaryTypeName",
                                                "src": "8625:7:22"
                                            }
                                        ],
                                        "id": 5366,
                                        "name": "VariableDeclaration",
                                        "src": "8625:15:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "newTime",
                                            "scope": 5388,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5367,
                                                "name": "ElementaryTypeName",
                                                "src": "8642:7:22"
                                            }
                                        ],
                                        "id": 5368,
                                        "name": "VariableDeclaration",
                                        "src": "8642:15:22"
                                    }
                                ],
                                "id": 5369,
                                "name": "ParameterList",
                                "src": "8624:34:22"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5374,
                                "name": "ParameterList",
                                "src": "8697:0:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 4681,
                                            "type": "modifier (address)",
                                            "value": "onlyIssueManager"
                                        },
                                        "id": 5370,
                                        "name": "Identifier",
                                        "src": "8666:16:22"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                null
                                            ],
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "isStructConstructorCall": false,
                                            "lValueRequested": false,
                                            "names": [
                                                null
                                            ],
                                            "type": "address payable",
                                            "type_conversion": false
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": [
                                                        null
                                                    ],
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 17,
                                                    "type": "function () view returns (address payable)",
                                                    "value": "_msgSender"
                                                },
                                                "id": 5371,
                                                "name": "Identifier",
                                                "src": "8683:10:22"
                                            }
                                        ],
                                        "id": 5372,
                                        "name": "FunctionCall",
                                        "src": "8683:12:22"
                                    }
                                ],
                                "id": 5373,
                                "name": "ModifierInvocation",
                                "src": "8666:30:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                                    "typeString": "literal_string \"Contract paused\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5375,
                                                        "name": "Identifier",
                                                        "src": "8708:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9078,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 5376,
                                                                "name": "Identifier",
                                                                "src": "8716:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 5377,
                                                                "name": "Literal",
                                                                "src": "8726:5:22"
                                                            }
                                                        ],
                                                        "id": 5378,
                                                        "name": "BinaryOperation",
                                                        "src": "8716:15:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "436f6e747261637420706175736564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Contract paused\"",
                                                            "value": "Contract paused"
                                                        },
                                                        "id": 5379,
                                                        "name": "Literal",
                                                        "src": "8733:17:22"
                                                    }
                                                ],
                                                "id": 5380,
                                                "name": "FunctionCall",
                                                "src": "8708:43:22"
                                            }
                                        ],
                                        "id": 5381,
                                        "name": "ExpressionStatement",
                                        "src": "8708:43:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6062,
                                                            "type": "function (uint256,uint256)",
                                                            "value": "_rescheduleSnapshot"
                                                        },
                                                        "id": 5382,
                                                        "name": "Identifier",
                                                        "src": "8762:19:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5366,
                                                            "type": "uint256",
                                                            "value": "oldTime"
                                                        },
                                                        "id": 5383,
                                                        "name": "Identifier",
                                                        "src": "8782:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5368,
                                                            "type": "uint256",
                                                            "value": "newTime"
                                                        },
                                                        "id": 5384,
                                                        "name": "Identifier",
                                                        "src": "8791:7:22"
                                                    }
                                                ],
                                                "id": 5385,
                                                "name": "FunctionCall",
                                                "src": "8762:37:22"
                                            }
                                        ],
                                        "id": 5386,
                                        "name": "ExpressionStatement",
                                        "src": "8762:37:22"
                                    }
                                ],
                                "id": 5387,
                                "name": "Block",
                                "src": "8697:110:22"
                            }
                        ],
                        "id": 5388,
                        "name": "FunctionDefinition",
                        "src": "8597:210:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "unscheduleSnapshot",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "time",
                                            "scope": 5409,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5389,
                                                "name": "ElementaryTypeName",
                                                "src": "8843:7:22"
                                            }
                                        ],
                                        "id": 5390,
                                        "name": "VariableDeclaration",
                                        "src": "8843:12:22"
                                    }
                                ],
                                "id": 5391,
                                "name": "ParameterList",
                                "src": "8842:14:22"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5396,
                                "name": "ParameterList",
                                "src": "8895:0:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 4681,
                                            "type": "modifier (address)",
                                            "value": "onlyIssueManager"
                                        },
                                        "id": 5392,
                                        "name": "Identifier",
                                        "src": "8864:16:22"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                null
                                            ],
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "isStructConstructorCall": false,
                                            "lValueRequested": false,
                                            "names": [
                                                null
                                            ],
                                            "type": "address payable",
                                            "type_conversion": false
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": [
                                                        null
                                                    ],
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 17,
                                                    "type": "function () view returns (address payable)",
                                                    "value": "_msgSender"
                                                },
                                                "id": 5393,
                                                "name": "Identifier",
                                                "src": "8881:10:22"
                                            }
                                        ],
                                        "id": 5394,
                                        "name": "FunctionCall",
                                        "src": "8881:12:22"
                                    }
                                ],
                                "id": 5395,
                                "name": "ModifierInvocation",
                                "src": "8864:30:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                                    "typeString": "literal_string \"Contract paused\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5397,
                                                        "name": "Identifier",
                                                        "src": "8906:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9078,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 5398,
                                                                "name": "Identifier",
                                                                "src": "8914:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 5399,
                                                                "name": "Literal",
                                                                "src": "8924:5:22"
                                                            }
                                                        ],
                                                        "id": 5400,
                                                        "name": "BinaryOperation",
                                                        "src": "8914:15:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "436f6e747261637420706175736564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Contract paused\"",
                                                            "value": "Contract paused"
                                                        },
                                                        "id": 5401,
                                                        "name": "Literal",
                                                        "src": "8931:17:22"
                                                    }
                                                ],
                                                "id": 5402,
                                                "name": "FunctionCall",
                                                "src": "8906:43:22"
                                            }
                                        ],
                                        "id": 5403,
                                        "name": "ExpressionStatement",
                                        "src": "8906:43:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6100,
                                                            "type": "function (uint256)",
                                                            "value": "_unscheduleSnapshot"
                                                        },
                                                        "id": 5404,
                                                        "name": "Identifier",
                                                        "src": "8960:19:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5390,
                                                            "type": "uint256",
                                                            "value": "time"
                                                        },
                                                        "id": 5405,
                                                        "name": "Identifier",
                                                        "src": "8980:4:22"
                                                    }
                                                ],
                                                "id": 5406,
                                                "name": "FunctionCall",
                                                "src": "8960:25:22"
                                            }
                                        ],
                                        "id": 5407,
                                        "name": "ExpressionStatement",
                                        "src": "8960:25:22"
                                    }
                                ],
                                "id": 5408,
                                "name": "Block",
                                "src": "8895:98:22"
                            }
                        ],
                        "id": 5409,
                        "name": "FunctionDefinition",
                        "src": "8815:178:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "createResolution",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "time",
                                            "scope": 5436,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5410,
                                                "name": "ElementaryTypeName",
                                                "src": "9027:7:22"
                                            }
                                        ],
                                        "id": 5411,
                                        "name": "VariableDeclaration",
                                        "src": "9027:12:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "votes",
                                            "scope": 5436,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 5412,
                                                "name": "ElementaryTypeName",
                                                "src": "9041:4:22"
                                            }
                                        ],
                                        "id": 5413,
                                        "name": "VariableDeclaration",
                                        "src": "9041:10:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "ipfsLink",
                                            "scope": 5436,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "string",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "string",
                                                    "type": "string"
                                                },
                                                "id": 5414,
                                                "name": "ElementaryTypeName",
                                                "src": "9053:6:22"
                                            }
                                        ],
                                        "id": 5415,
                                        "name": "VariableDeclaration",
                                        "src": "9053:22:22"
                                    }
                                ],
                                "id": 5416,
                                "name": "ParameterList",
                                "src": "9026:50:22"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5421,
                                "name": "ParameterList",
                                "src": "9115:0:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 4681,
                                            "type": "modifier (address)",
                                            "value": "onlyIssueManager"
                                        },
                                        "id": 5417,
                                        "name": "Identifier",
                                        "src": "9084:16:22"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                null
                                            ],
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "isStructConstructorCall": false,
                                            "lValueRequested": false,
                                            "names": [
                                                null
                                            ],
                                            "type": "address payable",
                                            "type_conversion": false
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": [
                                                        null
                                                    ],
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 17,
                                                    "type": "function () view returns (address payable)",
                                                    "value": "_msgSender"
                                                },
                                                "id": 5418,
                                                "name": "Identifier",
                                                "src": "9101:10:22"
                                            }
                                        ],
                                        "id": 5419,
                                        "name": "FunctionCall",
                                        "src": "9101:12:22"
                                    }
                                ],
                                "id": 5420,
                                "name": "ModifierInvocation",
                                "src": "9084:30:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                                    "typeString": "literal_string \"Contract paused\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5422,
                                                        "name": "Identifier",
                                                        "src": "9126:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9078,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 5423,
                                                                "name": "Identifier",
                                                                "src": "9134:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 5424,
                                                                "name": "Literal",
                                                                "src": "9144:5:22"
                                                            }
                                                        ],
                                                        "id": 5425,
                                                        "name": "BinaryOperation",
                                                        "src": "9134:15:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "436f6e747261637420706175736564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Contract paused\"",
                                                            "value": "Contract paused"
                                                        },
                                                        "id": 5426,
                                                        "name": "Literal",
                                                        "src": "9151:17:22"
                                                    }
                                                ],
                                                "id": 5427,
                                                "name": "FunctionCall",
                                                "src": "9126:43:22"
                                            }
                                        ],
                                        "id": 5428,
                                        "name": "ExpressionStatement",
                                        "src": "9126:43:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                    "typeString": "string memory"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3389,
                                                            "type": "function (uint256,bool,string memory)",
                                                            "value": "_createResolution"
                                                        },
                                                        "id": 5429,
                                                        "name": "Identifier",
                                                        "src": "9180:17:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5411,
                                                            "type": "uint256",
                                                            "value": "time"
                                                        },
                                                        "id": 5430,
                                                        "name": "Identifier",
                                                        "src": "9198:4:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5413,
                                                            "type": "bool",
                                                            "value": "votes"
                                                        },
                                                        "id": 5431,
                                                        "name": "Identifier",
                                                        "src": "9204:5:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5415,
                                                            "type": "string memory",
                                                            "value": "ipfsLink"
                                                        },
                                                        "id": 5432,
                                                        "name": "Identifier",
                                                        "src": "9211:8:22"
                                                    }
                                                ],
                                                "id": 5433,
                                                "name": "FunctionCall",
                                                "src": "9180:40:22"
                                            }
                                        ],
                                        "id": 5434,
                                        "name": "ExpressionStatement",
                                        "src": "9180:40:22"
                                    }
                                ],
                                "id": 5435,
                                "name": "Block",
                                "src": "9115:113:22"
                            }
                        ],
                        "id": 5436,
                        "name": "FunctionDefinition",
                        "src": "9001:227:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "countVotes",
                            "scope": 5917,
                            "stateMutability": "view",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "time",
                                            "scope": 5540,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5437,
                                                "name": "ElementaryTypeName",
                                                "src": "9260:7:22"
                                            }
                                        ],
                                        "id": 5438,
                                        "name": "VariableDeclaration",
                                        "src": "9260:12:22"
                                    }
                                ],
                                "id": 5439,
                                "name": "ParameterList",
                                "src": "9259:14:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "total",
                                            "scope": 5540,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5440,
                                                "name": "ElementaryTypeName",
                                                "src": "9329:7:22"
                                            }
                                        ],
                                        "id": 5441,
                                        "name": "VariableDeclaration",
                                        "src": "9329:13:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "yes",
                                            "scope": 5540,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5442,
                                                "name": "ElementaryTypeName",
                                                "src": "9344:7:22"
                                            }
                                        ],
                                        "id": 5443,
                                        "name": "VariableDeclaration",
                                        "src": "9344:11:22"
                                    }
                                ],
                                "id": 5444,
                                "name": "ParameterList",
                                "src": "9328:28:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                                    "typeString": "literal_string \"Contract paused\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5445,
                                                        "name": "Identifier",
                                                        "src": "9367:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9078,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 5446,
                                                                "name": "Identifier",
                                                                "src": "9375:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 5447,
                                                                "name": "Literal",
                                                                "src": "9385:5:22"
                                                            }
                                                        ],
                                                        "id": 5448,
                                                        "name": "BinaryOperation",
                                                        "src": "9375:15:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "436f6e747261637420706175736564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Contract paused\"",
                                                            "value": "Contract paused"
                                                        },
                                                        "id": 5449,
                                                        "name": "Literal",
                                                        "src": "9392:17:22"
                                                    }
                                                ],
                                                "id": 5450,
                                                "name": "FunctionCall",
                                                "src": "9367:43:22"
                                            }
                                        ],
                                        "id": 5451,
                                        "name": "ExpressionStatement",
                                        "src": "9367:43:22"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                5453
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "voteCount",
                                                    "scope": 5539,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 5452,
                                                        "name": "ElementaryTypeName",
                                                        "src": "9421:7:22"
                                                    }
                                                ],
                                                "id": 5453,
                                                "name": "VariableDeclaration",
                                                "src": "9421:17:22"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "hexvalue": "30",
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "subdenomination": null,
                                                    "token": "number",
                                                    "type": "int_const 0",
                                                    "value": "0"
                                                },
                                                "id": 5454,
                                                "name": "Literal",
                                                "src": "9441:1:22"
                                            }
                                        ],
                                        "id": 5455,
                                        "name": "VariableDeclarationStatement",
                                        "src": "9421:21:22"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                5457
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "totalCount",
                                                    "scope": 5539,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 5456,
                                                        "name": "ElementaryTypeName",
                                                        "src": "9453:7:22"
                                                    }
                                                ],
                                                "id": 5457,
                                                "name": "VariableDeclaration",
                                                "src": "9453:18:22"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "hexvalue": "30",
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "subdenomination": null,
                                                    "token": "number",
                                                    "type": "int_const 0",
                                                    "value": "0"
                                                },
                                                "id": 5458,
                                                "name": "Literal",
                                                "src": "9474:1:22"
                                            }
                                        ],
                                        "id": 5459,
                                        "name": "VariableDeclarationStatement",
                                        "src": "9453:22:22"
                                    },
                                    {
                                        "attributes": {
                                            "falseBody": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "!=",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "bytes32",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                                            "typeString": "bytes memory"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9418,
                                                                    "type": "function (bytes memory) pure returns (bytes32)",
                                                                    "value": "keccak256"
                                                                },
                                                                "id": 5460,
                                                                "name": "Identifier",
                                                                "src": "9489:9:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bytes memory",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_string_storage",
                                                                                    "typeString": "string storage ref"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "member_name": "encodePacked",
                                                                            "referencedDeclaration": null,
                                                                            "type": "function () pure returns (bytes memory)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9411,
                                                                                    "type": "abi",
                                                                                    "value": "abi"
                                                                                },
                                                                                "id": 5461,
                                                                                "name": "Identifier",
                                                                                "src": "9499:3:22"
                                                                            }
                                                                        ],
                                                                        "id": 5462,
                                                                        "name": "MemberAccess",
                                                                        "src": "9499:16:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "string storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3317,
                                                                                    "type": "mapping(uint256 => string storage ref)",
                                                                                    "value": "resolutions"
                                                                                },
                                                                                "id": 5463,
                                                                                "name": "Identifier",
                                                                                "src": "9516:11:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5438,
                                                                                    "type": "uint256",
                                                                                    "value": "time"
                                                                                },
                                                                                "id": 5464,
                                                                                "name": "Identifier",
                                                                                "src": "9528:4:22"
                                                                            }
                                                                        ],
                                                                        "id": 5465,
                                                                        "name": "IndexAccess",
                                                                        "src": "9516:17:22"
                                                                    }
                                                                ],
                                                                "id": 5466,
                                                                "name": "FunctionCall",
                                                                "src": "9499:35:22"
                                                            }
                                                        ],
                                                        "id": 5467,
                                                        "name": "FunctionCall",
                                                        "src": "9489:46:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "bytes32",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                                            "typeString": "bytes memory"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9418,
                                                                    "type": "function (bytes memory) pure returns (bytes32)",
                                                                    "value": "keccak256"
                                                                },
                                                                "id": 5468,
                                                                "name": "Identifier",
                                                                "src": "9539:9:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "bytes memory",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                                                                    "typeString": "literal_string \"\""
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "member_name": "encodePacked",
                                                                            "referencedDeclaration": null,
                                                                            "type": "function () pure returns (bytes memory)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9411,
                                                                                    "type": "abi",
                                                                                    "value": "abi"
                                                                                },
                                                                                "id": 5469,
                                                                                "name": "Identifier",
                                                                                "src": "9549:3:22"
                                                                            }
                                                                        ],
                                                                        "id": 5470,
                                                                        "name": "MemberAccess",
                                                                        "src": "9549:16:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "string",
                                                                            "type": "literal_string \"\"",
                                                                            "value": ""
                                                                        },
                                                                        "id": 5471,
                                                                        "name": "Literal",
                                                                        "src": "9566:2:22"
                                                                    }
                                                                ],
                                                                "id": 5472,
                                                                "name": "FunctionCall",
                                                                "src": "9549:20:22"
                                                            }
                                                        ],
                                                        "id": 5473,
                                                        "name": "FunctionCall",
                                                        "src": "9539:31:22"
                                                    }
                                                ],
                                                "id": 5474,
                                                "name": "BinaryOperation",
                                                "src": "9489:81:22"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "falseBody": null
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3321,
                                                                                    "type": "mapping(string memory => bool)",
                                                                                    "value": "voting"
                                                                                },
                                                                                "id": 5475,
                                                                                "name": "Identifier",
                                                                                "src": "9589:6:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "string storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3317,
                                                                                            "type": "mapping(uint256 => string storage ref)",
                                                                                            "value": "resolutions"
                                                                                        },
                                                                                        "id": 5476,
                                                                                        "name": "Identifier",
                                                                                        "src": "9596:11:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5438,
                                                                                            "type": "uint256",
                                                                                            "value": "time"
                                                                                        },
                                                                                        "id": 5477,
                                                                                        "name": "Identifier",
                                                                                        "src": "9608:4:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5478,
                                                                                "name": "IndexAccess",
                                                                                "src": "9596:17:22"
                                                                            }
                                                                        ],
                                                                        "id": 5479,
                                                                        "name": "IndexAccess",
                                                                        "src": "9589:25:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "74727565",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "bool",
                                                                            "type": "bool",
                                                                            "value": "true"
                                                                        },
                                                                        "id": 5480,
                                                                        "name": "Literal",
                                                                        "src": "9616:4:22"
                                                                    }
                                                                ],
                                                                "id": 5481,
                                                                "name": "BinaryOperation",
                                                                "src": "9589:31:22"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "assignments": [
                                                                                5483
                                                                            ]
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "constant": false,
                                                                                    "name": "length",
                                                                                    "scope": 5531,
                                                                                    "stateVariable": false,
                                                                                    "storageLocation": "default",
                                                                                    "type": "uint256",
                                                                                    "value": null,
                                                                                    "visibility": "internal"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "name": "uint",
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "id": 5482,
                                                                                        "name": "ElementaryTypeName",
                                                                                        "src": "9646:4:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5483,
                                                                                "name": "VariableDeclaration",
                                                                                "src": "9646:11:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "length",
                                                                                    "referencedDeclaration": null,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 4588,
                                                                                            "type": "address[] storage ref",
                                                                                            "value": "holders"
                                                                                        },
                                                                                        "id": 5484,
                                                                                        "name": "Identifier",
                                                                                        "src": "9660:7:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5485,
                                                                                "name": "MemberAccess",
                                                                                "src": "9660:14:22"
                                                                            }
                                                                        ],
                                                                        "id": 5486,
                                                                        "name": "VariableDeclarationStatement",
                                                                        "src": "9646:28:22"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "assignments": [
                                                                                        5488
                                                                                    ]
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "constant": false,
                                                                                            "name": "i",
                                                                                            "scope": 5530,
                                                                                            "stateVariable": false,
                                                                                            "storageLocation": "default",
                                                                                            "type": "uint256",
                                                                                            "value": null,
                                                                                            "visibility": "internal"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "name": "uint256",
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "id": 5487,
                                                                                                "name": "ElementaryTypeName",
                                                                                                "src": "9707:7:22"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5488,
                                                                                        "name": "VariableDeclaration",
                                                                                        "src": "9707:9:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "30",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "number",
                                                                                            "type": "int_const 0",
                                                                                            "value": "0"
                                                                                        },
                                                                                        "id": 5489,
                                                                                        "name": "Literal",
                                                                                        "src": "9717:1:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5490,
                                                                                "name": "VariableDeclarationStatement",
                                                                                "src": "9707:11:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "commonType": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "<",
                                                                                    "type": "bool"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5488,
                                                                                            "type": "uint256",
                                                                                            "value": "i"
                                                                                        },
                                                                                        "id": 5491,
                                                                                        "name": "Identifier",
                                                                                        "src": "9720:1:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5483,
                                                                                            "type": "uint256",
                                                                                            "value": "length"
                                                                                        },
                                                                                        "id": 5492,
                                                                                        "name": "Identifier",
                                                                                        "src": "9722:6:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5493,
                                                                                "name": "BinaryOperation",
                                                                                "src": "9720:8:22"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": "++",
                                                                                            "prefix": false,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5488,
                                                                                                    "type": "uint256",
                                                                                                    "value": "i"
                                                                                                },
                                                                                                "id": 5494,
                                                                                                "name": "Identifier",
                                                                                                "src": "9730:1:22"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5495,
                                                                                        "name": "UnaryOperation",
                                                                                        "src": "9730:3:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5496,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "9730:3:22"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "falseBody": null
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "commonType": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": ">",
                                                                                                    "type": "bool"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "type": "uint256",
                                                                                                            "type_conversion": false
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 6137,
                                                                                                                    "type": "function (uint256,address) view returns (uint256)",
                                                                                                                    "value": "snapshotBalanceOf"
                                                                                                                },
                                                                                                                "id": 5497,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "9760:17:22"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 5438,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "time"
                                                                                                                },
                                                                                                                "id": 5498,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "9778:4:22"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "address"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 4588,
                                                                                                                            "type": "address[] storage ref",
                                                                                                                            "value": "holders"
                                                                                                                        },
                                                                                                                        "id": 5499,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "9784:7:22"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 5488,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "i"
                                                                                                                        },
                                                                                                                        "id": 5500,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "9792:1:22"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 5501,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "9784:10:22"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5502,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "9760:35:22"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "hexvalue": "30",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "subdenomination": null,
                                                                                                            "token": "number",
                                                                                                            "type": "int_const 0",
                                                                                                            "value": "0"
                                                                                                        },
                                                                                                        "id": 5503,
                                                                                                        "name": "Literal",
                                                                                                        "src": "9796:1:22"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5504,
                                                                                                "name": "BinaryOperation",
                                                                                                "src": "9760:37:22"
                                                                                            },
                                                                                            {
                                                                                                "children": [
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "operator": "=",
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 5457,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "totalCount"
                                                                                                                        },
                                                                                                                        "id": 5505,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "9825:10:22"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "commonType": {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            },
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "operator": "+",
                                                                                                                            "type": "uint256"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 5457,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "totalCount"
                                                                                                                                },
                                                                                                                                "id": 5506,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "9838:10:22"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "hexvalue": "31",
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": true,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "subdenomination": null,
                                                                                                                                    "token": "number",
                                                                                                                                    "type": "int_const 1",
                                                                                                                                    "value": "1"
                                                                                                                                },
                                                                                                                                "id": 5507,
                                                                                                                                "name": "Literal",
                                                                                                                                "src": "9851:1:22"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 5508,
                                                                                                                        "name": "BinaryOperation",
                                                                                                                        "src": "9838:14:22"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 5509,
                                                                                                                "name": "Assignment",
                                                                                                                "src": "9825:27:22"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5510,
                                                                                                        "name": "ExpressionStatement",
                                                                                                        "src": "9825:27:22"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "falseBody": null
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "commonType": {
                                                                                                                        "typeIdentifier": "t_bool",
                                                                                                                        "typeString": "bool"
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "operator": "==",
                                                                                                                    "type": "bool"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "bool"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "mapping(address => bool)"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 3296,
                                                                                                                                            "type": "mapping(uint256 => mapping(address => bool))",
                                                                                                                                            "value": "votes"
                                                                                                                                        },
                                                                                                                                        "id": 5511,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "9882:5:22"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 5438,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "time"
                                                                                                                                        },
                                                                                                                                        "id": 5512,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "9888:4:22"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 5513,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "9882:11:22"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "address"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 4588,
                                                                                                                                            "type": "address[] storage ref",
                                                                                                                                            "value": "holders"
                                                                                                                                        },
                                                                                                                                        "id": 5514,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "9894:7:22"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 5488,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "i"
                                                                                                                                        },
                                                                                                                                        "id": 5515,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "9902:1:22"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 5516,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "9894:10:22"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 5517,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "9882:23:22"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "hexvalue": "74727565",
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": true,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "subdenomination": null,
                                                                                                                            "token": "bool",
                                                                                                                            "type": "bool",
                                                                                                                            "value": "true"
                                                                                                                        },
                                                                                                                        "id": 5518,
                                                                                                                        "name": "Literal",
                                                                                                                        "src": "9907:4:22"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 5519,
                                                                                                                "name": "BinaryOperation",
                                                                                                                "src": "9882:29:22"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": null,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "operator": "=",
                                                                                                                            "type": "uint256"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 5453,
                                                                                                                                    "type": "uint256",
                                                                                                                                    "value": "voteCount"
                                                                                                                                },
                                                                                                                                "id": 5520,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "9942:9:22"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": null,
                                                                                                                                    "commonType": {
                                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                                        "typeString": "uint256"
                                                                                                                                    },
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "operator": "+",
                                                                                                                                    "type": "uint256"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 5453,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "voteCount"
                                                                                                                                        },
                                                                                                                                        "id": 5521,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "9954:9:22"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": null,
                                                                                                                                            "hexvalue": "31",
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": true,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "subdenomination": null,
                                                                                                                                            "token": "number",
                                                                                                                                            "type": "int_const 1",
                                                                                                                                            "value": "1"
                                                                                                                                        },
                                                                                                                                        "id": 5522,
                                                                                                                                        "name": "Literal",
                                                                                                                                        "src": "9966:1:22"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 5523,
                                                                                                                                "name": "BinaryOperation",
                                                                                                                                "src": "9954:13:22"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 5524,
                                                                                                                        "name": "Assignment",
                                                                                                                        "src": "9942:25:22"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 5525,
                                                                                                                "name": "ExpressionStatement",
                                                                                                                "src": "9942:25:22"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5526,
                                                                                                        "name": "IfStatement",
                                                                                                        "src": "9879:88:22"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5527,
                                                                                                "name": "Block",
                                                                                                "src": "9798:193:22"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5528,
                                                                                        "name": "IfStatement",
                                                                                        "src": "9757:234:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5529,
                                                                                "name": "Block",
                                                                                "src": "9734:276:22"
                                                                            }
                                                                        ],
                                                                        "id": 5530,
                                                                        "name": "ForStatement",
                                                                        "src": "9703:307:22"
                                                                    }
                                                                ],
                                                                "id": 5531,
                                                                "name": "Block",
                                                                "src": "9621:404:22"
                                                            }
                                                        ],
                                                        "id": 5532,
                                                        "name": "IfStatement",
                                                        "src": "9586:439:22"
                                                    }
                                                ],
                                                "id": 5533,
                                                "name": "Block",
                                                "src": "9571:465:22"
                                            }
                                        ],
                                        "id": 5534,
                                        "name": "IfStatement",
                                        "src": "9486:550:22"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 5444
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isInlineArray": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "tuple(uint256,uint256)"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5457,
                                                            "type": "uint256",
                                                            "value": "totalCount"
                                                        },
                                                        "id": 5535,
                                                        "name": "Identifier",
                                                        "src": "10054:10:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5453,
                                                            "type": "uint256",
                                                            "value": "voteCount"
                                                        },
                                                        "id": 5536,
                                                        "name": "Identifier",
                                                        "src": "10066:9:22"
                                                    }
                                                ],
                                                "id": 5537,
                                                "name": "TupleExpression",
                                                "src": "10053:23:22"
                                            }
                                        ],
                                        "id": 5538,
                                        "name": "Return",
                                        "src": "10046:30:22"
                                    }
                                ],
                                "id": 5539,
                                "name": "Block",
                                "src": "9356:735:22"
                            }
                        ],
                        "id": 5540,
                        "name": "FunctionDefinition",
                        "src": "9240:851:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "payoutProrata",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "time",
                                            "scope": 5685,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5541,
                                                "name": "ElementaryTypeName",
                                                "src": "10127:7:22"
                                            }
                                        ],
                                        "id": 5542,
                                        "name": "VariableDeclaration",
                                        "src": "10127:12:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "wallet",
                                            "scope": 5685,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5543,
                                                "name": "ElementaryTypeName",
                                                "src": "10141:7:22"
                                            }
                                        ],
                                        "id": 5544,
                                        "name": "VariableDeclaration",
                                        "src": "10141:14:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "token",
                                            "scope": 5685,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5545,
                                                "name": "ElementaryTypeName",
                                                "src": "10157:7:22"
                                            }
                                        ],
                                        "id": 5546,
                                        "name": "VariableDeclaration",
                                        "src": "10157:13:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 5685,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5547,
                                                "name": "ElementaryTypeName",
                                                "src": "10172:7:22"
                                            }
                                        ],
                                        "id": 5548,
                                        "name": "VariableDeclaration",
                                        "src": "10172:14:22"
                                    }
                                ],
                                "id": 5549,
                                "name": "ParameterList",
                                "src": "10126:61:22"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5554,
                                "name": "ParameterList",
                                "src": "10237:0:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 4660,
                                            "type": "modifier (address)",
                                            "value": "onlyIssueManagerOrCustodian"
                                        },
                                        "id": 5550,
                                        "name": "Identifier",
                                        "src": "10195:27:22"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                null
                                            ],
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "isStructConstructorCall": false,
                                            "lValueRequested": false,
                                            "names": [
                                                null
                                            ],
                                            "type": "address payable",
                                            "type_conversion": false
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": [
                                                        null
                                                    ],
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 17,
                                                    "type": "function () view returns (address payable)",
                                                    "value": "_msgSender"
                                                },
                                                "id": 5551,
                                                "name": "Identifier",
                                                "src": "10223:10:22"
                                            }
                                        ],
                                        "id": 5552,
                                        "name": "FunctionCall",
                                        "src": "10223:12:22"
                                    }
                                ],
                                "id": 5553,
                                "name": "ModifierInvocation",
                                "src": "10195:41:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                                    "typeString": "literal_string \"Contract paused\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5555,
                                                        "name": "Identifier",
                                                        "src": "10248:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9078,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 5556,
                                                                "name": "Identifier",
                                                                "src": "10256:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 5557,
                                                                "name": "Literal",
                                                                "src": "10266:5:22"
                                                            }
                                                        ],
                                                        "id": 5558,
                                                        "name": "BinaryOperation",
                                                        "src": "10256:15:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "436f6e747261637420706175736564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Contract paused\"",
                                                            "value": "Contract paused"
                                                        },
                                                        "id": 5559,
                                                        "name": "Literal",
                                                        "src": "10273:17:22"
                                                    }
                                                ],
                                                "id": 5560,
                                                "name": "FunctionCall",
                                                "src": "10248:43:22"
                                            }
                                        ],
                                        "id": 5561,
                                        "name": "ExpressionStatement",
                                        "src": "10248:43:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_977294da16bb922128a2affaf4c986f1adc8c978bb78f2ba06e80cd40b78ac83",
                                                                    "typeString": "literal_string \"No scheduled snapshot found\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5562,
                                                        "name": "Identifier",
                                                        "src": "10302:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": ">",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6160,
                                                                            "type": "function (uint256) view returns (uint256)",
                                                                            "value": "snapshotTotalSupply"
                                                                        },
                                                                        "id": 5563,
                                                                        "name": "Identifier",
                                                                        "src": "10310:19:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5542,
                                                                            "type": "uint256",
                                                                            "value": "time"
                                                                        },
                                                                        "id": 5564,
                                                                        "name": "Identifier",
                                                                        "src": "10330:4:22"
                                                                    }
                                                                ],
                                                                "id": 5565,
                                                                "name": "FunctionCall",
                                                                "src": "10310:25:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "30",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0"
                                                                },
                                                                "id": 5566,
                                                                "name": "Literal",
                                                                "src": "10336:1:22"
                                                            }
                                                        ],
                                                        "id": 5567,
                                                        "name": "BinaryOperation",
                                                        "src": "10310:27:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "4e6f207363686564756c656420736e617073686f7420666f756e64",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"No scheduled snapshot found\"",
                                                            "value": "No scheduled snapshot found"
                                                        },
                                                        "id": 5568,
                                                        "name": "Literal",
                                                        "src": "10339:29:22"
                                                    }
                                                ],
                                                "id": 5569,
                                                "name": "FunctionCall",
                                                "src": "10302:67:22"
                                            }
                                        ],
                                        "id": 5570,
                                        "name": "ExpressionStatement",
                                        "src": "10302:67:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5",
                                                                    "typeString": "literal_string \"Insufficient balance\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5571,
                                                        "name": "Identifier",
                                                        "src": "10380:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": ">=",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "balanceOf",
                                                                            "referencedDeclaration": 456,
                                                                            "type": "function (address) view external returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "contract ERC20",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 821,
                                                                                            "type": "type(contract ERC20)",
                                                                                            "value": "ERC20"
                                                                                        },
                                                                                        "id": 5572,
                                                                                        "name": "Identifier",
                                                                                        "src": "10388:5:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5546,
                                                                                            "type": "address",
                                                                                            "value": "token"
                                                                                        },
                                                                                        "id": 5573,
                                                                                        "name": "Identifier",
                                                                                        "src": "10394:5:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5574,
                                                                                "name": "FunctionCall",
                                                                                "src": "10388:12:22"
                                                                            }
                                                                        ],
                                                                        "id": 5575,
                                                                        "name": "MemberAccess",
                                                                        "src": "10388:22:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5544,
                                                                            "type": "address",
                                                                            "value": "wallet"
                                                                        },
                                                                        "id": 5576,
                                                                        "name": "Identifier",
                                                                        "src": "10411:6:22"
                                                                    }
                                                                ],
                                                                "id": 5577,
                                                                "name": "FunctionCall",
                                                                "src": "10388:30:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5548,
                                                                    "type": "uint256",
                                                                    "value": "amount"
                                                                },
                                                                "id": 5578,
                                                                "name": "Identifier",
                                                                "src": "10422:6:22"
                                                            }
                                                        ],
                                                        "id": 5579,
                                                        "name": "BinaryOperation",
                                                        "src": "10388:40:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "496e73756666696369656e742062616c616e6365",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Insufficient balance\"",
                                                            "value": "Insufficient balance"
                                                        },
                                                        "id": 5580,
                                                        "name": "Literal",
                                                        "src": "10430:22:22"
                                                    }
                                                ],
                                                "id": 5581,
                                                "name": "FunctionCall",
                                                "src": "10380:73:22"
                                            }
                                        ],
                                        "id": 5582,
                                        "name": "ExpressionStatement",
                                        "src": "10380:73:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_1f18e2d98d68be0bd3d32bb03735442ce8c3503d5fe37bcccb91af6013bad106",
                                                                    "typeString": "literal_string \"Invalid distribution\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5583,
                                                        "name": "Identifier",
                                                        "src": "10464:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "&&",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "&&",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "!=",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5546,
                                                                                    "type": "address",
                                                                                    "value": "token"
                                                                                },
                                                                                "id": 5584,
                                                                                "name": "Identifier",
                                                                                "src": "10472:5:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "address payable",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                                                    "typeString": "int_const 0"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "type": "type(address)",
                                                                                            "value": "address"
                                                                                        },
                                                                                        "id": 5585,
                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                        "src": "10479:7:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "307830",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "number",
                                                                                            "type": "int_const 0",
                                                                                            "value": "0x0"
                                                                                        },
                                                                                        "id": 5586,
                                                                                        "name": "Literal",
                                                                                        "src": "10487:3:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5587,
                                                                                "name": "FunctionCall",
                                                                                "src": "10479:12:22"
                                                                            }
                                                                        ],
                                                                        "id": 5588,
                                                                        "name": "BinaryOperation",
                                                                        "src": "10472:19:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "!=",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5544,
                                                                                    "type": "address",
                                                                                    "value": "wallet"
                                                                                },
                                                                                "id": 5589,
                                                                                "name": "Identifier",
                                                                                "src": "10495:6:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "address payable",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                                                    "typeString": "int_const 0"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "type": "type(address)",
                                                                                            "value": "address"
                                                                                        },
                                                                                        "id": 5590,
                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                        "src": "10503:7:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "307830",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "number",
                                                                                            "type": "int_const 0",
                                                                                            "value": "0x0"
                                                                                        },
                                                                                        "id": 5591,
                                                                                        "name": "Literal",
                                                                                        "src": "10511:3:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5592,
                                                                                "name": "FunctionCall",
                                                                                "src": "10503:12:22"
                                                                            }
                                                                        ],
                                                                        "id": 5593,
                                                                        "name": "BinaryOperation",
                                                                        "src": "10495:20:22"
                                                                    }
                                                                ],
                                                                "id": 5594,
                                                                "name": "BinaryOperation",
                                                                "src": "10472:43:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": ">",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5548,
                                                                            "type": "uint256",
                                                                            "value": "amount"
                                                                        },
                                                                        "id": 5595,
                                                                        "name": "Identifier",
                                                                        "src": "10519:6:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "30",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "number",
                                                                            "type": "int_const 0",
                                                                            "value": "0"
                                                                        },
                                                                        "id": 5596,
                                                                        "name": "Literal",
                                                                        "src": "10526:1:22"
                                                                    }
                                                                ],
                                                                "id": 5597,
                                                                "name": "BinaryOperation",
                                                                "src": "10519:8:22"
                                                            }
                                                        ],
                                                        "id": 5598,
                                                        "name": "BinaryOperation",
                                                        "src": "10472:55:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "496e76616c696420646973747269627574696f6e",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Invalid distribution\"",
                                                            "value": "Invalid distribution"
                                                        },
                                                        "id": 5599,
                                                        "name": "Literal",
                                                        "src": "10529:22:22"
                                                    }
                                                ],
                                                "id": 5600,
                                                "name": "FunctionCall",
                                                "src": "10464:88:22"
                                            }
                                        ],
                                        "id": 5601,
                                        "name": "ExpressionStatement",
                                        "src": "10464:88:22"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                5603
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "totalHoldings",
                                                    "scope": 5684,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 5602,
                                                        "name": "ElementaryTypeName",
                                                        "src": "10563:7:22"
                                                    }
                                                ],
                                                "id": 5603,
                                                "name": "VariableDeclaration",
                                                "src": "10563:21:22"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6160,
                                                            "type": "function (uint256) view returns (uint256)",
                                                            "value": "snapshotTotalSupply"
                                                        },
                                                        "id": 5604,
                                                        "name": "Identifier",
                                                        "src": "10587:19:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5542,
                                                            "type": "uint256",
                                                            "value": "time"
                                                        },
                                                        "id": 5605,
                                                        "name": "Identifier",
                                                        "src": "10607:4:22"
                                                    }
                                                ],
                                                "id": 5606,
                                                "name": "FunctionCall",
                                                "src": "10587:25:22"
                                            }
                                        ],
                                        "id": 5607,
                                        "name": "VariableDeclarationStatement",
                                        "src": "10563:49:22"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                5609
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "length",
                                                    "scope": 5684,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint",
                                                            "type": "uint256"
                                                        },
                                                        "id": 5608,
                                                        "name": "ElementaryTypeName",
                                                        "src": "10623:4:22"
                                                    }
                                                ],
                                                "id": 5609,
                                                "name": "VariableDeclaration",
                                                "src": "10623:11:22"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "member_name": "length",
                                                    "referencedDeclaration": null,
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4588,
                                                            "type": "address[] storage ref",
                                                            "value": "holders"
                                                        },
                                                        "id": 5610,
                                                        "name": "Identifier",
                                                        "src": "10637:7:22"
                                                    }
                                                ],
                                                "id": 5611,
                                                "name": "MemberAccess",
                                                "src": "10637:14:22"
                                            }
                                        ],
                                        "id": 5612,
                                        "name": "VariableDeclarationStatement",
                                        "src": "10623:28:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "assignments": [
                                                        5614
                                                    ]
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "constant": false,
                                                            "name": "i",
                                                            "scope": 5683,
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "type": "uint256",
                                                            "value": null,
                                                            "visibility": "internal"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "uint256",
                                                                    "type": "uint256"
                                                                },
                                                                "id": 5613,
                                                                "name": "ElementaryTypeName",
                                                                "src": "10666:7:22"
                                                            }
                                                        ],
                                                        "id": 5614,
                                                        "name": "VariableDeclaration",
                                                        "src": "10666:9:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 5615,
                                                        "name": "Literal",
                                                        "src": "10676:1:22"
                                                    }
                                                ],
                                                "id": 5616,
                                                "name": "VariableDeclarationStatement",
                                                "src": "10666:11:22"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "<",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5614,
                                                            "type": "uint256",
                                                            "value": "i"
                                                        },
                                                        "id": 5617,
                                                        "name": "Identifier",
                                                        "src": "10679:1:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5609,
                                                            "type": "uint256",
                                                            "value": "length"
                                                        },
                                                        "id": 5618,
                                                        "name": "Identifier",
                                                        "src": "10681:6:22"
                                                    }
                                                ],
                                                "id": 5619,
                                                "name": "BinaryOperation",
                                                "src": "10679:8:22"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "++",
                                                            "prefix": false,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5614,
                                                                    "type": "uint256",
                                                                    "value": "i"
                                                                },
                                                                "id": 5620,
                                                                "name": "Identifier",
                                                                "src": "10689:1:22"
                                                            }
                                                        ],
                                                        "id": 5621,
                                                        "name": "UnaryOperation",
                                                        "src": "10689:3:22"
                                                    }
                                                ],
                                                "id": 5622,
                                                "name": "ExpressionStatement",
                                                "src": "10689:3:22"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                5624
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "name": "holding",
                                                                    "scope": 5682,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "uint256",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "uint256",
                                                                            "type": "uint256"
                                                                        },
                                                                        "id": 5623,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "10708:7:22"
                                                                    }
                                                                ],
                                                                "id": 5624,
                                                                "name": "VariableDeclaration",
                                                                "src": "10708:15:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6137,
                                                                            "type": "function (uint256,address) view returns (uint256)",
                                                                            "value": "snapshotBalanceOf"
                                                                        },
                                                                        "id": 5625,
                                                                        "name": "Identifier",
                                                                        "src": "10726:17:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5542,
                                                                            "type": "uint256",
                                                                            "value": "time"
                                                                        },
                                                                        "id": 5626,
                                                                        "name": "Identifier",
                                                                        "src": "10744:4:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 4588,
                                                                                    "type": "address[] storage ref",
                                                                                    "value": "holders"
                                                                                },
                                                                                "id": 5627,
                                                                                "name": "Identifier",
                                                                                "src": "10750:7:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5614,
                                                                                    "type": "uint256",
                                                                                    "value": "i"
                                                                                },
                                                                                "id": 5628,
                                                                                "name": "Identifier",
                                                                                "src": "10758:1:22"
                                                                            }
                                                                        ],
                                                                        "id": 5629,
                                                                        "name": "IndexAccess",
                                                                        "src": "10750:10:22"
                                                                    }
                                                                ],
                                                                "id": 5630,
                                                                "name": "FunctionCall",
                                                                "src": "10726:35:22"
                                                            }
                                                        ],
                                                        "id": 5631,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "10708:53:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "falseBody": null
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": ">",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5624,
                                                                            "type": "uint256",
                                                                            "value": "holding"
                                                                        },
                                                                        "id": 5632,
                                                                        "name": "Identifier",
                                                                        "src": "10779:7:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "30",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "number",
                                                                            "type": "int_const 0",
                                                                            "value": "0"
                                                                        },
                                                                        "id": 5633,
                                                                        "name": "Literal",
                                                                        "src": "10789:1:22"
                                                                    }
                                                                ],
                                                                "id": 5634,
                                                                "name": "BinaryOperation",
                                                                "src": "10779:11:22"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "assignments": [
                                                                                5636
                                                                            ]
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "constant": false,
                                                                                    "name": "prorata",
                                                                                    "scope": 5680,
                                                                                    "stateVariable": false,
                                                                                    "storageLocation": "default",
                                                                                    "type": "uint256",
                                                                                    "value": null,
                                                                                    "visibility": "internal"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "name": "uint256",
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "id": 5635,
                                                                                        "name": "ElementaryTypeName",
                                                                                        "src": "10810:7:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5636,
                                                                                "name": "VariableDeclaration",
                                                                                "src": "10810:15:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "mulDown",
                                                                                            "referencedDeclaration": 6978,
                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 7283,
                                                                                                    "type": "type(library FixedPoint)",
                                                                                                    "value": "FixedPoint"
                                                                                                },
                                                                                                "id": 5637,
                                                                                                "name": "Identifier",
                                                                                                "src": "10828:10:22"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5638,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "10828:18:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "type": "uint256",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "divDown",
                                                                                                    "referencedDeclaration": 7069,
                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 7283,
                                                                                                            "type": "type(library FixedPoint)",
                                                                                                            "value": "FixedPoint"
                                                                                                        },
                                                                                                        "id": 5639,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "10847:10:22"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5640,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "10847:18:22"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5624,
                                                                                                    "type": "uint256",
                                                                                                    "value": "holding"
                                                                                                },
                                                                                                "id": 5641,
                                                                                                "name": "Identifier",
                                                                                                "src": "10866:7:22"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5603,
                                                                                                    "type": "uint256",
                                                                                                    "value": "totalHoldings"
                                                                                                },
                                                                                                "id": 5642,
                                                                                                "name": "Identifier",
                                                                                                "src": "10875:13:22"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5643,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "10847:42:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5548,
                                                                                            "type": "uint256",
                                                                                            "value": "amount"
                                                                                        },
                                                                                        "id": 5644,
                                                                                        "name": "Identifier",
                                                                                        "src": "10891:6:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5645,
                                                                                "name": "FunctionCall",
                                                                                "src": "10828:70:22"
                                                                            }
                                                                        ],
                                                                        "id": 5646,
                                                                        "name": "VariableDeclarationStatement",
                                                                        "src": "10810:88:22"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "bool",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "transferFrom",
                                                                                            "referencedDeclaration": 546,
                                                                                            "type": "function (address,address,uint256) external returns (bool)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "type": "contract ERC20",
                                                                                                    "type_conversion": true
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            ],
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 821,
                                                                                                            "type": "type(contract ERC20)",
                                                                                                            "value": "ERC20"
                                                                                                        },
                                                                                                        "id": 5647,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "10917:5:22"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5546,
                                                                                                            "type": "address",
                                                                                                            "value": "token"
                                                                                                        },
                                                                                                        "id": 5648,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "10923:5:22"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5649,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "10917:12:22"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5650,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "10917:25:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5544,
                                                                                            "type": "address",
                                                                                            "value": "wallet"
                                                                                        },
                                                                                        "id": 5651,
                                                                                        "name": "Identifier",
                                                                                        "src": "10943:6:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "address"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 4588,
                                                                                                    "type": "address[] storage ref",
                                                                                                    "value": "holders"
                                                                                                },
                                                                                                "id": 5652,
                                                                                                "name": "Identifier",
                                                                                                "src": "10951:7:22"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5614,
                                                                                                    "type": "uint256",
                                                                                                    "value": "i"
                                                                                                },
                                                                                                "id": 5653,
                                                                                                "name": "Identifier",
                                                                                                "src": "10959:1:22"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5654,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "10951:10:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5636,
                                                                                            "type": "uint256",
                                                                                            "value": "prorata"
                                                                                        },
                                                                                        "id": 5655,
                                                                                        "name": "Identifier",
                                                                                        "src": "10963:7:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5656,
                                                                                "name": "FunctionCall",
                                                                                "src": "10917:54:22"
                                                                            }
                                                                        ],
                                                                        "id": 5657,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "10917:54:22"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": true,
                                                                                            "member_name": "token",
                                                                                            "referencedDeclaration": 3304,
                                                                                            "type": "address"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct CorporateActions.Distribution storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "mapping(address => struct CorporateActions.Distribution storage ref)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 3313,
                                                                                                                    "type": "mapping(uint256 => mapping(address => struct CorporateActions.Distribution storage ref))",
                                                                                                                    "value": "distributions"
                                                                                                                },
                                                                                                                "id": 5658,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "10990:13:22"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 5542,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "time"
                                                                                                                },
                                                                                                                "id": 5659,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "11004:4:22"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5663,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "10990:19:22"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "address"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 4588,
                                                                                                                    "type": "address[] storage ref",
                                                                                                                    "value": "holders"
                                                                                                                },
                                                                                                                "id": 5660,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "11010:7:22"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 5614,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "i"
                                                                                                                },
                                                                                                                "id": 5661,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "11018:1:22"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5662,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "11010:10:22"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5664,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "10990:31:22"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5665,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "10990:37:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5546,
                                                                                            "type": "address",
                                                                                            "value": "token"
                                                                                        },
                                                                                        "id": 5666,
                                                                                        "name": "Identifier",
                                                                                        "src": "11030:5:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5667,
                                                                                "name": "Assignment",
                                                                                "src": "10990:45:22"
                                                                            }
                                                                        ],
                                                                        "id": 5668,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "10990:45:22"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": true,
                                                                                            "member_name": "amount",
                                                                                            "referencedDeclaration": 3306,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct CorporateActions.Distribution storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "mapping(address => struct CorporateActions.Distribution storage ref)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 3313,
                                                                                                                    "type": "mapping(uint256 => mapping(address => struct CorporateActions.Distribution storage ref))",
                                                                                                                    "value": "distributions"
                                                                                                                },
                                                                                                                "id": 5669,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "11054:13:22"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 5542,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "time"
                                                                                                                },
                                                                                                                "id": 5670,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "11068:4:22"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5674,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "11054:19:22"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "address"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 4588,
                                                                                                                    "type": "address[] storage ref",
                                                                                                                    "value": "holders"
                                                                                                                },
                                                                                                                "id": 5671,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "11074:7:22"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 5614,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "i"
                                                                                                                },
                                                                                                                "id": 5672,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "11082:1:22"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 5673,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "11074:10:22"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 5675,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "11054:31:22"
                                                                                            }
                                                                                        ],
                                                                                        "id": 5676,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "11054:38:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5636,
                                                                                            "type": "uint256",
                                                                                            "value": "prorata"
                                                                                        },
                                                                                        "id": 5677,
                                                                                        "name": "Identifier",
                                                                                        "src": "11095:7:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5678,
                                                                                "name": "Assignment",
                                                                                "src": "11054:48:22"
                                                                            }
                                                                        ],
                                                                        "id": 5679,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "11054:48:22"
                                                                    }
                                                                ],
                                                                "id": 5680,
                                                                "name": "Block",
                                                                "src": "10791:327:22"
                                                            }
                                                        ],
                                                        "id": 5681,
                                                        "name": "IfStatement",
                                                        "src": "10776:342:22"
                                                    }
                                                ],
                                                "id": 5682,
                                                "name": "Block",
                                                "src": "10693:436:22"
                                            }
                                        ],
                                        "id": 5683,
                                        "name": "ForStatement",
                                        "src": "10662:467:22"
                                    }
                                ],
                                "id": 5684,
                                "name": "Block",
                                "src": "10237:899:22"
                            }
                        ],
                        "id": 5685,
                        "name": "FunctionDefinition",
                        "src": "10104:1032:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "payout",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "time",
                                            "scope": 5787,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5686,
                                                "name": "ElementaryTypeName",
                                                "src": "11160:7:22"
                                            }
                                        ],
                                        "id": 5687,
                                        "name": "VariableDeclaration",
                                        "src": "11160:12:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "holder",
                                            "scope": 5787,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5688,
                                                "name": "ElementaryTypeName",
                                                "src": "11174:7:22"
                                            }
                                        ],
                                        "id": 5689,
                                        "name": "VariableDeclaration",
                                        "src": "11174:14:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "wallet",
                                            "scope": 5787,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5690,
                                                "name": "ElementaryTypeName",
                                                "src": "11190:7:22"
                                            }
                                        ],
                                        "id": 5691,
                                        "name": "VariableDeclaration",
                                        "src": "11190:14:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "token",
                                            "scope": 5787,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5692,
                                                "name": "ElementaryTypeName",
                                                "src": "11206:7:22"
                                            }
                                        ],
                                        "id": 5693,
                                        "name": "VariableDeclaration",
                                        "src": "11206:13:22"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "amount",
                                            "scope": 5787,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 5694,
                                                "name": "ElementaryTypeName",
                                                "src": "11221:7:22"
                                            }
                                        ],
                                        "id": 5695,
                                        "name": "VariableDeclaration",
                                        "src": "11221:14:22"
                                    }
                                ],
                                "id": 5696,
                                "name": "ParameterList",
                                "src": "11159:77:22"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5701,
                                "name": "ParameterList",
                                "src": "11286:0:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 4660,
                                            "type": "modifier (address)",
                                            "value": "onlyIssueManagerOrCustodian"
                                        },
                                        "id": 5697,
                                        "name": "Identifier",
                                        "src": "11244:27:22"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                null
                                            ],
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "isStructConstructorCall": false,
                                            "lValueRequested": false,
                                            "names": [
                                                null
                                            ],
                                            "type": "address payable",
                                            "type_conversion": false
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": [
                                                        null
                                                    ],
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 17,
                                                    "type": "function () view returns (address payable)",
                                                    "value": "_msgSender"
                                                },
                                                "id": 5698,
                                                "name": "Identifier",
                                                "src": "11272:10:22"
                                            }
                                        ],
                                        "id": 5699,
                                        "name": "FunctionCall",
                                        "src": "11272:12:22"
                                    }
                                ],
                                "id": 5700,
                                "name": "ModifierInvocation",
                                "src": "11244:41:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3050dffacb9368cabd9386d9e9f4fef5deb3cfb41011f6d6a59caa1f97c9cb15",
                                                                    "typeString": "literal_string \"Contract paused\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5702,
                                                        "name": "Identifier",
                                                        "src": "11297:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9078,
                                                                    "type": "bool",
                                                                    "value": "paused"
                                                                },
                                                                "id": 5703,
                                                                "name": "Identifier",
                                                                "src": "11305:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "66616c7365",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "bool",
                                                                    "type": "bool",
                                                                    "value": "false"
                                                                },
                                                                "id": 5704,
                                                                "name": "Literal",
                                                                "src": "11315:5:22"
                                                            }
                                                        ],
                                                        "id": 5705,
                                                        "name": "BinaryOperation",
                                                        "src": "11305:15:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "436f6e747261637420706175736564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Contract paused\"",
                                                            "value": "Contract paused"
                                                        },
                                                        "id": 5706,
                                                        "name": "Literal",
                                                        "src": "11322:17:22"
                                                    }
                                                ],
                                                "id": 5707,
                                                "name": "FunctionCall",
                                                "src": "11297:43:22"
                                            }
                                        ],
                                        "id": 5708,
                                        "name": "ExpressionStatement",
                                        "src": "11297:43:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_977294da16bb922128a2affaf4c986f1adc8c978bb78f2ba06e80cd40b78ac83",
                                                                    "typeString": "literal_string \"No scheduled snapshot found\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5709,
                                                        "name": "Identifier",
                                                        "src": "11351:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": ">",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6160,
                                                                            "type": "function (uint256) view returns (uint256)",
                                                                            "value": "snapshotTotalSupply"
                                                                        },
                                                                        "id": 5710,
                                                                        "name": "Identifier",
                                                                        "src": "11359:19:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5687,
                                                                            "type": "uint256",
                                                                            "value": "time"
                                                                        },
                                                                        "id": 5711,
                                                                        "name": "Identifier",
                                                                        "src": "11379:4:22"
                                                                    }
                                                                ],
                                                                "id": 5712,
                                                                "name": "FunctionCall",
                                                                "src": "11359:25:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "30",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0"
                                                                },
                                                                "id": 5713,
                                                                "name": "Literal",
                                                                "src": "11385:1:22"
                                                            }
                                                        ],
                                                        "id": 5714,
                                                        "name": "BinaryOperation",
                                                        "src": "11359:27:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "4e6f207363686564756c656420736e617073686f7420666f756e64",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"No scheduled snapshot found\"",
                                                            "value": "No scheduled snapshot found"
                                                        },
                                                        "id": 5715,
                                                        "name": "Literal",
                                                        "src": "11388:29:22"
                                                    }
                                                ],
                                                "id": 5716,
                                                "name": "FunctionCall",
                                                "src": "11351:67:22"
                                            }
                                        ],
                                        "id": 5717,
                                        "name": "ExpressionStatement",
                                        "src": "11351:67:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5",
                                                                    "typeString": "literal_string \"Insufficient balance\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5718,
                                                        "name": "Identifier",
                                                        "src": "11429:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": ">=",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "balanceOf",
                                                                            "referencedDeclaration": 456,
                                                                            "type": "function (address) view external returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "contract ERC20",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 821,
                                                                                            "type": "type(contract ERC20)",
                                                                                            "value": "ERC20"
                                                                                        },
                                                                                        "id": 5719,
                                                                                        "name": "Identifier",
                                                                                        "src": "11437:5:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5693,
                                                                                            "type": "address",
                                                                                            "value": "token"
                                                                                        },
                                                                                        "id": 5720,
                                                                                        "name": "Identifier",
                                                                                        "src": "11443:5:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5721,
                                                                                "name": "FunctionCall",
                                                                                "src": "11437:12:22"
                                                                            }
                                                                        ],
                                                                        "id": 5722,
                                                                        "name": "MemberAccess",
                                                                        "src": "11437:22:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5691,
                                                                            "type": "address",
                                                                            "value": "wallet"
                                                                        },
                                                                        "id": 5723,
                                                                        "name": "Identifier",
                                                                        "src": "11460:6:22"
                                                                    }
                                                                ],
                                                                "id": 5724,
                                                                "name": "FunctionCall",
                                                                "src": "11437:30:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5695,
                                                                    "type": "uint256",
                                                                    "value": "amount"
                                                                },
                                                                "id": 5725,
                                                                "name": "Identifier",
                                                                "src": "11471:6:22"
                                                            }
                                                        ],
                                                        "id": 5726,
                                                        "name": "BinaryOperation",
                                                        "src": "11437:40:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "496e73756666696369656e742062616c616e6365",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Insufficient balance\"",
                                                            "value": "Insufficient balance"
                                                        },
                                                        "id": 5727,
                                                        "name": "Literal",
                                                        "src": "11479:22:22"
                                                    }
                                                ],
                                                "id": 5728,
                                                "name": "FunctionCall",
                                                "src": "11429:73:22"
                                            }
                                        ],
                                        "id": 5729,
                                        "name": "ExpressionStatement",
                                        "src": "11429:73:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_5cfd768dbce7681456425997d7ca342eace51b467094bcc3d4353a52248b8e0f",
                                                                    "typeString": "literal_string \"Not a security token holder\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5730,
                                                        "name": "Identifier",
                                                        "src": "11513:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": ">",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6137,
                                                                            "type": "function (uint256,address) view returns (uint256)",
                                                                            "value": "snapshotBalanceOf"
                                                                        },
                                                                        "id": 5731,
                                                                        "name": "Identifier",
                                                                        "src": "11521:17:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5687,
                                                                            "type": "uint256",
                                                                            "value": "time"
                                                                        },
                                                                        "id": 5732,
                                                                        "name": "Identifier",
                                                                        "src": "11539:4:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5689,
                                                                            "type": "address",
                                                                            "value": "holder"
                                                                        },
                                                                        "id": 5733,
                                                                        "name": "Identifier",
                                                                        "src": "11545:6:22"
                                                                    }
                                                                ],
                                                                "id": 5734,
                                                                "name": "FunctionCall",
                                                                "src": "11521:31:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "30",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0"
                                                                },
                                                                "id": 5735,
                                                                "name": "Literal",
                                                                "src": "11553:1:22"
                                                            }
                                                        ],
                                                        "id": 5736,
                                                        "name": "BinaryOperation",
                                                        "src": "11521:33:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "4e6f74206120736563757269747920746f6b656e20686f6c646572",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Not a security token holder\"",
                                                            "value": "Not a security token holder"
                                                        },
                                                        "id": 5737,
                                                        "name": "Literal",
                                                        "src": "11556:29:22"
                                                    }
                                                ],
                                                "id": 5738,
                                                "name": "FunctionCall",
                                                "src": "11513:73:22"
                                            }
                                        ],
                                        "id": 5739,
                                        "name": "ExpressionStatement",
                                        "src": "11513:73:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_1f18e2d98d68be0bd3d32bb03735442ce8c3503d5fe37bcccb91af6013bad106",
                                                                    "typeString": "literal_string \"Invalid distribution\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5740,
                                                        "name": "Identifier",
                                                        "src": "11597:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "&&",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "&&",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "!=",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5693,
                                                                                    "type": "address",
                                                                                    "value": "token"
                                                                                },
                                                                                "id": 5741,
                                                                                "name": "Identifier",
                                                                                "src": "11605:5:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "address payable",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                                                    "typeString": "int_const 0"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "type": "type(address)",
                                                                                            "value": "address"
                                                                                        },
                                                                                        "id": 5742,
                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                        "src": "11612:7:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "307830",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "number",
                                                                                            "type": "int_const 0",
                                                                                            "value": "0x0"
                                                                                        },
                                                                                        "id": 5743,
                                                                                        "name": "Literal",
                                                                                        "src": "11620:3:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5744,
                                                                                "name": "FunctionCall",
                                                                                "src": "11612:12:22"
                                                                            }
                                                                        ],
                                                                        "id": 5745,
                                                                        "name": "BinaryOperation",
                                                                        "src": "11605:19:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "!=",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5691,
                                                                                    "type": "address",
                                                                                    "value": "wallet"
                                                                                },
                                                                                "id": 5746,
                                                                                "name": "Identifier",
                                                                                "src": "11628:6:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "type": "address payable",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                                                    "typeString": "int_const 0"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "type": "type(address)",
                                                                                            "value": "address"
                                                                                        },
                                                                                        "id": 5747,
                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                        "src": "11636:7:22"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "307830",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "number",
                                                                                            "type": "int_const 0",
                                                                                            "value": "0x0"
                                                                                        },
                                                                                        "id": 5748,
                                                                                        "name": "Literal",
                                                                                        "src": "11644:3:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5749,
                                                                                "name": "FunctionCall",
                                                                                "src": "11636:12:22"
                                                                            }
                                                                        ],
                                                                        "id": 5750,
                                                                        "name": "BinaryOperation",
                                                                        "src": "11628:20:22"
                                                                    }
                                                                ],
                                                                "id": 5751,
                                                                "name": "BinaryOperation",
                                                                "src": "11605:43:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": ">",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5695,
                                                                            "type": "uint256",
                                                                            "value": "amount"
                                                                        },
                                                                        "id": 5752,
                                                                        "name": "Identifier",
                                                                        "src": "11652:6:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "30",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "number",
                                                                            "type": "int_const 0",
                                                                            "value": "0"
                                                                        },
                                                                        "id": 5753,
                                                                        "name": "Literal",
                                                                        "src": "11659:1:22"
                                                                    }
                                                                ],
                                                                "id": 5754,
                                                                "name": "BinaryOperation",
                                                                "src": "11652:8:22"
                                                            }
                                                        ],
                                                        "id": 5755,
                                                        "name": "BinaryOperation",
                                                        "src": "11605:55:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "496e76616c696420646973747269627574696f6e",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"Invalid distribution\"",
                                                            "value": "Invalid distribution"
                                                        },
                                                        "id": 5756,
                                                        "name": "Literal",
                                                        "src": "11662:22:22"
                                                    }
                                                ],
                                                "id": 5757,
                                                "name": "FunctionCall",
                                                "src": "11597:88:22"
                                            }
                                        ],
                                        "id": 5758,
                                        "name": "ExpressionStatement",
                                        "src": "11597:88:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "transferFrom",
                                                            "referencedDeclaration": 546,
                                                            "type": "function (address,address,uint256) external returns (bool)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "contract ERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 821,
                                                                            "type": "type(contract ERC20)",
                                                                            "value": "ERC20"
                                                                        },
                                                                        "id": 5759,
                                                                        "name": "Identifier",
                                                                        "src": "11696:5:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5693,
                                                                            "type": "address",
                                                                            "value": "token"
                                                                        },
                                                                        "id": 5760,
                                                                        "name": "Identifier",
                                                                        "src": "11702:5:22"
                                                                    }
                                                                ],
                                                                "id": 5761,
                                                                "name": "FunctionCall",
                                                                "src": "11696:12:22"
                                                            }
                                                        ],
                                                        "id": 5762,
                                                        "name": "MemberAccess",
                                                        "src": "11696:25:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5691,
                                                            "type": "address",
                                                            "value": "wallet"
                                                        },
                                                        "id": 5763,
                                                        "name": "Identifier",
                                                        "src": "11722:6:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5689,
                                                            "type": "address",
                                                            "value": "holder"
                                                        },
                                                        "id": 5764,
                                                        "name": "Identifier",
                                                        "src": "11730:6:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5695,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 5765,
                                                        "name": "Identifier",
                                                        "src": "11738:6:22"
                                                    }
                                                ],
                                                "id": 5766,
                                                "name": "FunctionCall",
                                                "src": "11696:49:22"
                                            }
                                        ],
                                        "id": 5767,
                                        "name": "ExpressionStatement",
                                        "src": "11696:49:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "member_name": "token",
                                                            "referencedDeclaration": 3304,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct CorporateActions.Distribution storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => struct CorporateActions.Distribution storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3313,
                                                                                    "type": "mapping(uint256 => mapping(address => struct CorporateActions.Distribution storage ref))",
                                                                                    "value": "distributions"
                                                                                },
                                                                                "id": 5768,
                                                                                "name": "Identifier",
                                                                                "src": "11756:13:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5687,
                                                                                    "type": "uint256",
                                                                                    "value": "time"
                                                                                },
                                                                                "id": 5769,
                                                                                "name": "Identifier",
                                                                                "src": "11770:4:22"
                                                                            }
                                                                        ],
                                                                        "id": 5771,
                                                                        "name": "IndexAccess",
                                                                        "src": "11756:19:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5689,
                                                                            "type": "address",
                                                                            "value": "holder"
                                                                        },
                                                                        "id": 5770,
                                                                        "name": "Identifier",
                                                                        "src": "11776:6:22"
                                                                    }
                                                                ],
                                                                "id": 5772,
                                                                "name": "IndexAccess",
                                                                "src": "11756:27:22"
                                                            }
                                                        ],
                                                        "id": 5773,
                                                        "name": "MemberAccess",
                                                        "src": "11756:33:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5693,
                                                            "type": "address",
                                                            "value": "token"
                                                        },
                                                        "id": 5774,
                                                        "name": "Identifier",
                                                        "src": "11792:5:22"
                                                    }
                                                ],
                                                "id": 5775,
                                                "name": "Assignment",
                                                "src": "11756:41:22"
                                            }
                                        ],
                                        "id": 5776,
                                        "name": "ExpressionStatement",
                                        "src": "11756:41:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "member_name": "amount",
                                                            "referencedDeclaration": 3306,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct CorporateActions.Distribution storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => struct CorporateActions.Distribution storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3313,
                                                                                    "type": "mapping(uint256 => mapping(address => struct CorporateActions.Distribution storage ref))",
                                                                                    "value": "distributions"
                                                                                },
                                                                                "id": 5777,
                                                                                "name": "Identifier",
                                                                                "src": "11808:13:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5687,
                                                                                    "type": "uint256",
                                                                                    "value": "time"
                                                                                },
                                                                                "id": 5778,
                                                                                "name": "Identifier",
                                                                                "src": "11822:4:22"
                                                                            }
                                                                        ],
                                                                        "id": 5780,
                                                                        "name": "IndexAccess",
                                                                        "src": "11808:19:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5689,
                                                                            "type": "address",
                                                                            "value": "holder"
                                                                        },
                                                                        "id": 5779,
                                                                        "name": "Identifier",
                                                                        "src": "11828:6:22"
                                                                    }
                                                                ],
                                                                "id": 5781,
                                                                "name": "IndexAccess",
                                                                "src": "11808:27:22"
                                                            }
                                                        ],
                                                        "id": 5782,
                                                        "name": "MemberAccess",
                                                        "src": "11808:34:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5695,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 5783,
                                                        "name": "Identifier",
                                                        "src": "11845:6:22"
                                                    }
                                                ],
                                                "id": 5784,
                                                "name": "Assignment",
                                                "src": "11808:43:22"
                                            }
                                        ],
                                        "id": 5785,
                                        "name": "ExpressionStatement",
                                        "src": "11808:43:22"
                                    }
                                ],
                                "id": 5786,
                                "name": "Block",
                                "src": "11286:573:22"
                            }
                        ],
                        "id": 5787,
                        "name": "FunctionDefinition",
                        "src": "11144:715:22"
                    },
                    {
                        "attributes": {
                            "documentation": "@notice Withdraws all available funds for a token holder\r",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "withdrawFunds",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": 6640,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5788,
                                "name": "ParameterList",
                                "src": "11972:2:22"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5789,
                                "name": "ParameterList",
                                "src": "11984:0:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5846,
                                                            "type": "function (address)",
                                                            "value": "_withdrawFundsFor"
                                                        },
                                                        "id": 5790,
                                                        "name": "Identifier",
                                                        "src": "11995:17:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "sender",
                                                            "referencedDeclaration": null,
                                                            "type": "address payable"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9424,
                                                                    "type": "msg",
                                                                    "value": "msg"
                                                                },
                                                                "id": 5791,
                                                                "name": "Identifier",
                                                                "src": "12013:3:22"
                                                            }
                                                        ],
                                                        "id": 5792,
                                                        "name": "MemberAccess",
                                                        "src": "12013:10:22"
                                                    }
                                                ],
                                                "id": 5793,
                                                "name": "FunctionCall",
                                                "src": "11995:29:22"
                                            }
                                        ],
                                        "id": 5794,
                                        "name": "ExpressionStatement",
                                        "src": "11995:29:22"
                                    }
                                ],
                                "id": 5795,
                                "name": "Block",
                                "src": "11984:48:22"
                            }
                        ],
                        "id": 5796,
                        "name": "FunctionDefinition",
                        "src": "11950:82:22"
                    },
                    {
                        "attributes": {
                            "documentation": "@notice Withdraws funds for a set of token holders\r",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "pushFunds",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": 6687,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "owners",
                                            "scope": 5822,
                                            "stateVariable": false,
                                            "storageLocation": "calldata",
                                            "type": "address[]",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "length": null,
                                                    "type": "address[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 5797,
                                                        "name": "ElementaryTypeName",
                                                        "src": "12136:7:22"
                                                    }
                                                ],
                                                "id": 5798,
                                                "name": "ArrayTypeName",
                                                "src": "12136:9:22"
                                            }
                                        ],
                                        "id": 5799,
                                        "name": "VariableDeclaration",
                                        "src": "12136:25:22"
                                    }
                                ],
                                "id": 5800,
                                "name": "ParameterList",
                                "src": "12135:27:22"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5801,
                                "name": "ParameterList",
                                "src": "12172:0:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "assignments": [
                                                        5803
                                                    ]
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "constant": false,
                                                            "name": "i",
                                                            "scope": 5820,
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "type": "uint256",
                                                            "value": null,
                                                            "visibility": "internal"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "uint256",
                                                                    "type": "uint256"
                                                                },
                                                                "id": 5802,
                                                                "name": "ElementaryTypeName",
                                                                "src": "12188:7:22"
                                                            }
                                                        ],
                                                        "id": 5803,
                                                        "name": "VariableDeclaration",
                                                        "src": "12188:9:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 5804,
                                                        "name": "Literal",
                                                        "src": "12200:1:22"
                                                    }
                                                ],
                                                "id": 5805,
                                                "name": "VariableDeclarationStatement",
                                                "src": "12188:13:22"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "<",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5803,
                                                            "type": "uint256",
                                                            "value": "i"
                                                        },
                                                        "id": 5806,
                                                        "name": "Identifier",
                                                        "src": "12203:1:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "length",
                                                            "referencedDeclaration": null,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5799,
                                                                    "type": "address[] calldata",
                                                                    "value": "owners"
                                                                },
                                                                "id": 5807,
                                                                "name": "Identifier",
                                                                "src": "12207:6:22"
                                                            }
                                                        ],
                                                        "id": 5808,
                                                        "name": "MemberAccess",
                                                        "src": "12207:13:22"
                                                    }
                                                ],
                                                "id": 5809,
                                                "name": "BinaryOperation",
                                                "src": "12203:17:22"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "++",
                                                            "prefix": false,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5803,
                                                                    "type": "uint256",
                                                                    "value": "i"
                                                                },
                                                                "id": 5810,
                                                                "name": "Identifier",
                                                                "src": "12222:1:22"
                                                            }
                                                        ],
                                                        "id": 5811,
                                                        "name": "UnaryOperation",
                                                        "src": "12222:3:22"
                                                    }
                                                ],
                                                "id": 5812,
                                                "name": "ExpressionStatement",
                                                "src": "12222:3:22"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 5846,
                                                                            "type": "function (address)",
                                                                            "value": "_withdrawFundsFor"
                                                                        },
                                                                        "id": 5813,
                                                                        "name": "Identifier",
                                                                        "src": "12242:17:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5799,
                                                                                    "type": "address[] calldata",
                                                                                    "value": "owners"
                                                                                },
                                                                                "id": 5814,
                                                                                "name": "Identifier",
                                                                                "src": "12260:6:22"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 5803,
                                                                                    "type": "uint256",
                                                                                    "value": "i"
                                                                                },
                                                                                "id": 5815,
                                                                                "name": "Identifier",
                                                                                "src": "12267:1:22"
                                                                            }
                                                                        ],
                                                                        "id": 5816,
                                                                        "name": "IndexAccess",
                                                                        "src": "12260:9:22"
                                                                    }
                                                                ],
                                                                "id": 5817,
                                                                "name": "FunctionCall",
                                                                "src": "12242:28:22"
                                                            }
                                                        ],
                                                        "id": 5818,
                                                        "name": "ExpressionStatement",
                                                        "src": "12242:28:22"
                                                    }
                                                ],
                                                "id": 5819,
                                                "name": "Block",
                                                "src": "12227:55:22"
                                            }
                                        ],
                                        "id": 5820,
                                        "name": "ForStatement",
                                        "src": "12183:99:22"
                                    }
                                ],
                                "id": 5821,
                                "name": "Block",
                                "src": "12172:117:22"
                            }
                        ],
                        "id": 5822,
                        "name": "FunctionDefinition",
                        "src": "12117:172:22"
                    },
                    {
                        "attributes": {
                            "documentation": "@notice Withdraws all available funds for a token holder\r",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "_withdrawFundsFor",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "owner",
                                            "scope": 5846,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 5823,
                                                "name": "ElementaryTypeName",
                                                "src": "12407:7:22"
                                            }
                                        ],
                                        "id": 5824,
                                        "name": "VariableDeclaration",
                                        "src": "12407:13:22"
                                    }
                                ],
                                "id": 5825,
                                "name": "ParameterList",
                                "src": "12406:15:22"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5826,
                                "name": "ParameterList",
                                "src": "12431:0:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                5828
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "withdrawableFunds",
                                                    "scope": 5845,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 5827,
                                                        "name": "ElementaryTypeName",
                                                        "src": "12442:7:22"
                                                    }
                                                ],
                                                "id": 5828,
                                                "name": "VariableDeclaration",
                                                "src": "12442:25:22"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 3682,
                                                            "type": "function (address) returns (uint256)",
                                                            "value": "_prepareWithdrawFor"
                                                        },
                                                        "id": 5829,
                                                        "name": "Identifier",
                                                        "src": "12470:19:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5824,
                                                            "type": "address",
                                                            "value": "owner"
                                                        },
                                                        "id": 5830,
                                                        "name": "Identifier",
                                                        "src": "12490:5:22"
                                                    }
                                                ],
                                                "id": 5831,
                                                "name": "FunctionCall",
                                                "src": "12470:26:22"
                                            }
                                        ],
                                        "id": 5832,
                                        "name": "VariableDeclarationStatement",
                                        "src": "12442:54:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_5a9a5fc4e491cf1970553dfd93cadcc57c8b619630ebaa21058a858d63329bf4",
                                                                    "typeString": "literal_string \"FDT.withdrawFunds: TRANSFER_FAILED\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                9427,
                                                                9428
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 5833,
                                                        "name": "Identifier",
                                                        "src": "12509:7:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "bool",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "transfer",
                                                                    "referencedDeclaration": 844,
                                                                    "type": "function (address,uint256) external returns (bool)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4602,
                                                                            "type": "contract IERC20",
                                                                            "value": "fundsToken"
                                                                        },
                                                                        "id": 5834,
                                                                        "name": "Identifier",
                                                                        "src": "12531:10:22"
                                                                    }
                                                                ],
                                                                "id": 5835,
                                                                "name": "MemberAccess",
                                                                "src": "12531:19:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5824,
                                                                    "type": "address",
                                                                    "value": "owner"
                                                                },
                                                                "id": 5836,
                                                                "name": "Identifier",
                                                                "src": "12551:5:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5828,
                                                                    "type": "uint256",
                                                                    "value": "withdrawableFunds"
                                                                },
                                                                "id": 5837,
                                                                "name": "Identifier",
                                                                "src": "12558:17:22"
                                                            }
                                                        ],
                                                        "id": 5838,
                                                        "name": "FunctionCall",
                                                        "src": "12531:45:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "4644542e776974686472617746756e64733a205452414e534645525f4641494c4544",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"FDT.withdrawFunds: TRANSFER_FAILED\"",
                                                            "value": "FDT.withdrawFunds: TRANSFER_FAILED"
                                                        },
                                                        "id": 5839,
                                                        "name": "Literal",
                                                        "src": "12591:36:22"
                                                    }
                                                ],
                                                "id": 5840,
                                                "name": "FunctionCall",
                                                "src": "12509:129:22"
                                            }
                                        ],
                                        "id": 5841,
                                        "name": "ExpressionStatement",
                                        "src": "12509:129:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "int256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5894,
                                                            "type": "function () returns (int256)",
                                                            "value": "_updateFundsTokenBalance"
                                                        },
                                                        "id": 5842,
                                                        "name": "Identifier",
                                                        "src": "12649:24:22"
                                                    }
                                                ],
                                                "id": 5843,
                                                "name": "FunctionCall",
                                                "src": "12649:26:22"
                                            }
                                        ],
                                        "id": 5844,
                                        "name": "ExpressionStatement",
                                        "src": "12649:26:22"
                                    }
                                ],
                                "id": 5845,
                                "name": "Block",
                                "src": "12431:252:22"
                            }
                        ],
                        "id": 5846,
                        "name": "FunctionDefinition",
                        "src": "12380:303:22"
                    },
                    {
                        "attributes": {
                            "documentation": "@notice Register a payment of funds in tokens. May be called directly after a deposit is made.\r",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "updateFundsReceived",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": 6690,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5847,
                                "name": "ParameterList",
                                "src": "12840:2:22"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5848,
                                "name": "ParameterList",
                                "src": "12852:0:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                5850
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "newFunds",
                                                    "scope": 5865,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "int256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "int256",
                                                            "type": "int256"
                                                        },
                                                        "id": 5849,
                                                        "name": "ElementaryTypeName",
                                                        "src": "12863:6:22"
                                                    }
                                                ],
                                                "id": 5850,
                                                "name": "VariableDeclaration",
                                                "src": "12863:15:22"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "int256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5894,
                                                            "type": "function () returns (int256)",
                                                            "value": "_updateFundsTokenBalance"
                                                        },
                                                        "id": 5851,
                                                        "name": "Identifier",
                                                        "src": "12881:24:22"
                                                    }
                                                ],
                                                "id": 5852,
                                                "name": "FunctionCall",
                                                "src": "12881:26:22"
                                            }
                                        ],
                                        "id": 5853,
                                        "name": "VariableDeclarationStatement",
                                        "src": "12863:44:22"
                                    },
                                    {
                                        "attributes": {
                                            "falseBody": null
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_int256",
                                                        "typeString": "int256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": ">",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 5850,
                                                            "type": "int256",
                                                            "value": "newFunds"
                                                        },
                                                        "id": 5854,
                                                        "name": "Identifier",
                                                        "src": "12924:8:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 5855,
                                                        "name": "Literal",
                                                        "src": "12935:1:22"
                                                    }
                                                ],
                                                "id": 5856,
                                                "name": "BinaryOperation",
                                                "src": "12924:12:22"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3650,
                                                                            "type": "function (uint256)",
                                                                            "value": "_distributeFunds"
                                                                        },
                                                                        "id": 5857,
                                                                        "name": "Identifier",
                                                                        "src": "12953:16:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "arguments": [
                                                                                null
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        null
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "toUint256Safe",
                                                                                    "referencedDeclaration": 8877,
                                                                                    "type": "function (int256) pure returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5850,
                                                                                            "type": "int256",
                                                                                            "value": "newFunds"
                                                                                        },
                                                                                        "id": 5858,
                                                                                        "name": "Identifier",
                                                                                        "src": "12970:8:22"
                                                                                    }
                                                                                ],
                                                                                "id": 5859,
                                                                                "name": "MemberAccess",
                                                                                "src": "12970:22:22"
                                                                            }
                                                                        ],
                                                                        "id": 5860,
                                                                        "name": "FunctionCall",
                                                                        "src": "12970:24:22"
                                                                    }
                                                                ],
                                                                "id": 5861,
                                                                "name": "FunctionCall",
                                                                "src": "12953:42:22"
                                                            }
                                                        ],
                                                        "id": 5862,
                                                        "name": "ExpressionStatement",
                                                        "src": "12953:42:22"
                                                    }
                                                ],
                                                "id": 5863,
                                                "name": "Block",
                                                "src": "12938:69:22"
                                            }
                                        ],
                                        "id": 5864,
                                        "name": "IfStatement",
                                        "src": "12920:87:22"
                                    }
                                ],
                                "id": 5865,
                                "name": "Block",
                                "src": "12852:162:22"
                            }
                        ],
                        "id": 5866,
                        "name": "FunctionDefinition",
                        "src": "12812:202:22"
                    },
                    {
                        "attributes": {
                            "documentation": "@dev Updates the current funds token balance\r\nand returns the difference of new and previous funds token balances\r\n@return A int256 representing the difference of the new and previous funds token balance\r",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "_updateFundsTokenBalance",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5867,
                                "name": "ParameterList",
                                "src": "13299:2:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "name": "",
                                            "scope": 5894,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "int256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "int256",
                                                    "type": "int256"
                                                },
                                                "id": 5868,
                                                "name": "ElementaryTypeName",
                                                "src": "13320:6:22"
                                            }
                                        ],
                                        "id": 5869,
                                        "name": "VariableDeclaration",
                                        "src": "13320:6:22"
                                    }
                                ],
                                "id": 5870,
                                "name": "ParameterList",
                                "src": "13319:8:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                5872
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "name": "prevFundsTokenBalance",
                                                    "scope": 5893,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 5871,
                                                        "name": "ElementaryTypeName",
                                                        "src": "13339:7:22"
                                                    }
                                                ],
                                                "id": 5872,
                                                "name": "VariableDeclaration",
                                                "src": "13339:29:22"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 4604,
                                                    "type": "uint256",
                                                    "value": "fundsTokenBalance"
                                                },
                                                "id": 5873,
                                                "name": "Identifier",
                                                "src": "13371:17:22"
                                            }
                                        ],
                                        "id": 5874,
                                        "name": "VariableDeclarationStatement",
                                        "src": "13339:49:22"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 4604,
                                                            "type": "uint256",
                                                            "value": "fundsTokenBalance"
                                                        },
                                                        "id": 5875,
                                                        "name": "Identifier",
                                                        "src": "13401:17:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "balanceOf",
                                                                    "referencedDeclaration": 835,
                                                                    "type": "function (address) view external returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4602,
                                                                            "type": "contract IERC20",
                                                                            "value": "fundsToken"
                                                                        },
                                                                        "id": 5876,
                                                                        "name": "Identifier",
                                                                        "src": "13421:10:22"
                                                                    }
                                                                ],
                                                                "id": 5877,
                                                                "name": "MemberAccess",
                                                                "src": "13421:20:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "address",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_contract$_Security_$5917",
                                                                                    "typeString": "contract Security"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "type": "type(address)",
                                                                            "value": "address"
                                                                        },
                                                                        "id": 5878,
                                                                        "name": "ElementaryTypeNameExpression",
                                                                        "src": "13442:7:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9502,
                                                                            "type": "contract Security",
                                                                            "value": "this"
                                                                        },
                                                                        "id": 5879,
                                                                        "name": "Identifier",
                                                                        "src": "13450:4:22"
                                                                    }
                                                                ],
                                                                "id": 5880,
                                                                "name": "FunctionCall",
                                                                "src": "13442:13:22"
                                                            }
                                                        ],
                                                        "id": 5881,
                                                        "name": "FunctionCall",
                                                        "src": "13421:35:22"
                                                    }
                                                ],
                                                "id": 5882,
                                                "name": "Assignment",
                                                "src": "13401:55:22"
                                            }
                                        ],
                                        "id": 5883,
                                        "name": "ExpressionStatement",
                                        "src": "13401:55:22"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 5870
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "int256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_int256",
                                                                    "typeString": "int256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "sub",
                                                            "referencedDeclaration": 9034,
                                                            "type": "function (int256,int256) pure returns (int256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "type": "int256",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "type": "type(int256)",
                                                                            "value": "int256"
                                                                        },
                                                                        "id": 5884,
                                                                        "name": "ElementaryTypeNameExpression",
                                                                        "src": "13476:6:22"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 4604,
                                                                            "type": "uint256",
                                                                            "value": "fundsTokenBalance"
                                                                        },
                                                                        "id": 5885,
                                                                        "name": "Identifier",
                                                                        "src": "13483:17:22"
                                                                    }
                                                                ],
                                                                "id": 5886,
                                                                "name": "FunctionCall",
                                                                "src": "13476:25:22"
                                                            }
                                                        ],
                                                        "id": 5887,
                                                        "name": "MemberAccess",
                                                        "src": "13476:29:22"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "type": "int256",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(int256)",
                                                                    "value": "int256"
                                                                },
                                                                "id": 5888,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "13506:6:22"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 5872,
                                                                    "type": "uint256",
                                                                    "value": "prevFundsTokenBalance"
                                                                },
                                                                "id": 5889,
                                                                "name": "Identifier",
                                                                "src": "13513:21:22"
                                                            }
                                                        ],
                                                        "id": 5890,
                                                        "name": "FunctionCall",
                                                        "src": "13506:29:22"
                                                    }
                                                ],
                                                "id": 5891,
                                                "name": "FunctionCall",
                                                "src": "13476:60:22"
                                            }
                                        ],
                                        "id": 5892,
                                        "name": "Return",
                                        "src": "13469:67:22"
                                    }
                                ],
                                "id": 5893,
                                "name": "Block",
                                "src": "13328:216:22"
                            }
                        ],
                        "id": 5894,
                        "name": "FunctionDefinition",
                        "src": "13266:278:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "pause",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5895,
                                "name": "ParameterList",
                                "src": "13566:2:22"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5900,
                                "name": "ParameterList",
                                "src": "13606:0:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 4681,
                                            "type": "modifier (address)",
                                            "value": "onlyIssueManager"
                                        },
                                        "id": 5896,
                                        "name": "Identifier",
                                        "src": "13576:16:22"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                null
                                            ],
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "isStructConstructorCall": false,
                                            "lValueRequested": false,
                                            "names": [
                                                null
                                            ],
                                            "type": "address payable",
                                            "type_conversion": false
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": [
                                                        null
                                                    ],
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 17,
                                                    "type": "function () view returns (address payable)",
                                                    "value": "_msgSender"
                                                },
                                                "id": 5897,
                                                "name": "Identifier",
                                                "src": "13593:10:22"
                                            }
                                        ],
                                        "id": 5898,
                                        "name": "FunctionCall",
                                        "src": "13593:12:22"
                                    }
                                ],
                                "id": 5899,
                                "name": "ModifierInvocation",
                                "src": "13576:30:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9093,
                                                            "type": "function ()",
                                                            "value": "_pause"
                                                        },
                                                        "id": 5901,
                                                        "name": "Identifier",
                                                        "src": "13617:6:22"
                                                    }
                                                ],
                                                "id": 5902,
                                                "name": "FunctionCall",
                                                "src": "13617:8:22"
                                            }
                                        ],
                                        "id": 5903,
                                        "name": "ExpressionStatement",
                                        "src": "13617:8:22"
                                    }
                                ],
                                "id": 5904,
                                "name": "Block",
                                "src": "13606:27:22"
                            }
                        ],
                        "id": 5905,
                        "name": "FunctionDefinition",
                        "src": "13552:81:22"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "unpause",
                            "scope": 5917,
                            "stateMutability": "nonpayable",
                            "superFunction": null,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5906,
                                "name": "ParameterList",
                                "src": "13657:2:22"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 5911,
                                "name": "ParameterList",
                                "src": "13697:0:22"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 4681,
                                            "type": "modifier (address)",
                                            "value": "onlyIssueManager"
                                        },
                                        "id": 5907,
                                        "name": "Identifier",
                                        "src": "13667:16:22"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                null
                                            ],
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "isStructConstructorCall": false,
                                            "lValueRequested": false,
                                            "names": [
                                                null
                                            ],
                                            "type": "address payable",
                                            "type_conversion": false
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": [
                                                        null
                                                    ],
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 17,
                                                    "type": "function () view returns (address payable)",
                                                    "value": "_msgSender"
                                                },
                                                "id": 5908,
                                                "name": "Identifier",
                                                "src": "13684:10:22"
                                            }
                                        ],
                                        "id": 5909,
                                        "name": "FunctionCall",
                                        "src": "13684:12:22"
                                    }
                                ],
                                "id": 5910,
                                "name": "ModifierInvocation",
                                "src": "13667:30:22"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9104,
                                                            "type": "function ()",
                                                            "value": "_unpause"
                                                        },
                                                        "id": 5912,
                                                        "name": "Identifier",
                                                        "src": "13708:8:22"
                                                    }
                                                ],
                                                "id": 5913,
                                                "name": "FunctionCall",
                                                "src": "13708:10:22"
                                            }
                                        ],
                                        "id": 5914,
                                        "name": "ExpressionStatement",
                                        "src": "13708:10:22"
                                    }
                                ],
                                "id": 5915,
                                "name": "Block",
                                "src": "13697:29:22"
                            }
                        ],
                        "id": 5916,
                        "name": "FunctionDefinition",
                        "src": "13641:85:22"
                    }
                ],
                "id": 5917,
                "name": "ContractDefinition",
                "src": "406:13325:22"
            }
        ],
        "id": 5918,
        "name": "SourceUnit",
        "src": "106:13629:22"
    },
    "compiler": {
        "name": "solc",
        "version": "0.5.7+commit.6da8b019.Emscripten.clang"
    },
    "networks": {
        "1": {
            "events": {},
            "links": {},
            "address": "0x0d062A0064b762ed8AEe7DE9E79b532e6215c77a",
            "transactionHash": "0x57d37a2129ba418d6e18cecd6ffcd671adffc5a6fde150e09ea24bf0bc39e8af"
        },
        "100": {
            "events": {},
            "links": {},
            "address": "0x7Ac1EC6B37Dfb74D3017b13236ed7B8267dAc8Ab",
            "transactionHash": "0xe586491a6e5ccd5e7825afccc04eb8dee94ba2a69e2329f6ed1b80f8e5a1aca3"
        },
        "8453": {
            "events": {},
            "links": {},
            "address": "0xCa480886e13922AD807acD1B979f31499e2E4088",
            "transactionHash": "0x021b6c9bf44be7e54f83c8b9f6ac1d8d52bba66088350f355db9f9cc930de8b9"
        },
        "11155111": {
            "events": {},
            "links": {},
            "address": "0xa1c552a33FB9e391d0F50A6407385c55cd22d596",
            "transactionHash": "0xf19ed728c66915eedb3544601393d595a64bad1d1b44e7ac74687a5c6cb5fdfb"
        },
        "1729362618521": {
            "events": {},
            "links": {},
            "address": "0x74Af117B084Bb19d56471fA681Ac077E7f1b49F4",
            "transactionHash": "0x86014192197b81d63410cad80fdaa1d53e010ecee52bc7473eeeacb0a5c63c5d"
        },
        "1734842681569": {
            "events": {},
            "links": {},
            "address": "0xf1f031cfB6927F978f3E355b44aF4292Fd2E8Ab3",
            "transactionHash": "0x3271c9238cfa68e3ea60f77927d42d00bec0ad264b4856173d3cdeb95f09ecf6"
        },
        "1734873379405": {
            "events": {},
            "links": {},
            "address": "0x759b5Ca10a632352B45B6a766a9B3012aEcDCe03",
            "transactionHash": "0x9b64e134adc4643afe78f729d96f5030e7295bb53ef2aa4e8bf3777213a5df2c"
        },
        "1735141964972": {
            "events": {},
            "links": {},
            "address": "0xE7b1342442Df8f4e3729e9037cE721bF1f5e90E0",
            "transactionHash": "0xedf48d75e27ae61756500e0ed180a92b2dcb8a00b310cabce69baa7ba50af39c"
        },
        "1735142994788": {
            "events": {},
            "links": {},
            "address": "0x9Cb780CCCEd9Eb0970850b6c47d4c2e742545163",
            "transactionHash": "0x1d9cc7376eecb82de3f7cdc5395174ba9b4e658a8d842a7871f7460df76b7c08"
        },
        "1737639970123": {
            "events": {},
            "links": {},
            "address": "0xB04015FA1399771B2d41057077264c0cB4A0a2E7",
            "transactionHash": "0xb28199ed69f18f02efe34939d2a629cde5d4478378def4c13ef26524d0926bf4"
        },
        "1737641283957": {
            "events": {},
            "links": {},
            "address": "0x1f5ed7873461Dd34AB8A2F3bF138AAFbC93E227D",
            "transactionHash": "0x3be8f89dbd217493fd68fc939299b0334dc70b8731c5d4d5dc32712edf936d65"
        },
        "1737643787782": {
            "events": {},
            "links": {},
            "address": "0x605238482F2Cb85cee70A0eFF6AA6d2aa2F3915A",
            "transactionHash": "0x21c1e94e134430bb64c601396b37d1273b7f61a89bc3e0372b3f6ed2e561a53e"
        }
    },
    "schemaVersion": "3.4.3",
    "updatedAt": "2025-02-27T16:47:01.967Z",
    "networkType": "ethereum",
    "devdoc": {
        "methods": {
            "accumulativeFundsOf(address)": {
                "details": "accumulativeFundsOf(_owner) = withdrawableFundsOf(_owner) + withdrawnFundsOf(_owner)\r = (pointsPerShare * balanceOf(_owner) + pointsCorrection[_owner]) / pointsMultiplier\r",
                "params": {
                    "_owner": "The address of a token holder.\r"
                },
                "return": "The amount of funds that `_owner` has earned in total.\r"
            },
            "allowance(address,address)": {
                "details": "See {IERC20-allowance}."
            },
            "balanceOf(address)": {
                "details": "See {IERC20-balanceOf}."
            },
            "initialize(address)": {
                "details": "Initializes the contract setting the deployer as the initial owner."
            },
            "initialize(bytes32,bytes32,address,address,address,address)": {
                "details": "Sets the values for {name} and {symbol}.\r      * The default value of {decimals} is 18. To select a different value for\r {decimals} you should overload it.\r      * All two of these values are immutable: they can only be set once during\r construction.\r"
            },
            "isOwner()": {
                "details": "Returns true if the caller is the current owner."
            },
            "isPaused()": {
                "return": "True: contract is paused\rFalse: contract is not paused\r"
            },
            "name()": {
                "details": "Returns the name of the token.\r"
            },
            "owner()": {
                "details": "Returns the address of the current owner."
            },
            "renounceOwnership()": {
                "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner.     * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
            },
            "symbol()": {
                "details": "Returns the symbol of the token, usually a shorter version of the\r name.\r"
            },
            "totalSupply()": {
                "details": "See {IERC20-totalSupply}."
            },
            "transferOwnership(address)": {
                "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
            },
            "withdrawableFundsOf(address)": {
                "params": {
                    "_owner": "The address of a token holder.\r"
                },
                "return": "The amount funds that `_owner` can withdraw.\r"
            },
            "withdrawnFundsOf(address)": {
                "params": {
                    "_owner": "The address of a token holder.\r"
                },
                "return": "The amount of funds that `_owner` has withdrawn.\r"
            }
        }
    },
    "userdoc": {
        "methods": {
            "accumulativeFundsOf(address)": {
                "notice": "prev. accumulativeDividendOf\rView the amount of funds that an address has earned in total.\r"
            },
            "decimals()": {
                "notice": "Securities are indivisible, so returning decimal 0\r"
            },
            "isPaused()": {
                "notice": "returns whether or not the contract is paused\r"
            },
            "pushFunds(address[])": {
                "notice": "Withdraws funds for a set of token holders\r"
            },
            "updateFundsReceived()": {
                "notice": "Register a payment of funds in tokens. May be called directly after a deposit is made.\r"
            },
            "withdrawFunds()": {
                "notice": "Withdraws all available funds for a token holder\r"
            },
            "withdrawableFundsOf(address)": {
                "notice": "prev. withdrawableDividendOf\rView the amount of funds that an address can withdraw.\r"
            },
            "withdrawnFundsOf(address)": {
                "notice": "prev. withdrawnDividendOf\rView the amount of funds that an address has withdrawn.\r"
            }
        }
    }
}
