{
  "contractName": "StandardToken",
  "abi": [
    {
      "constant": false,
      "inputs": [
        {
          "name": "_spender",
          "type": "address"
        },
        {
          "name": "_value",
          "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": false,
      "inputs": [
        {
          "name": "_from",
          "type": "address"
        },
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_spender",
          "type": "address"
        },
        {
          "name": "_subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "decreaseApproval",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "name": "balance",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_spender",
          "type": "address"
        },
        {
          "name": "_addedValue",
          "type": "uint256"
        }
      ],
      "name": "increaseApproval",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "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"
    },
    {
      "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": [
        {
          "indexed": true,
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    }
  ],
  "bytecode": "0x6060604052341561000f57600080fd5b6106e68061001e6000396000f30060606040526004361061008d5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095ea7b3811461009257806318160ddd146100c857806323b872dd146100ed578063661884631461011557806370a0823114610137578063a9059cbb14610156578063d73dd62314610178578063dd62ed3e1461019a575b600080fd5b341561009d57600080fd5b6100b4600160a060020a03600435166024356101bf565b604051901515815260200160405180910390f35b34156100d357600080fd5b6100db61022b565b60405190815260200160405180910390f35b34156100f857600080fd5b6100b4600160a060020a0360043581169060243516604435610231565b341561012057600080fd5b6100b4600160a060020a03600435166024356103b3565b341561014257600080fd5b6100db600160a060020a03600435166104ad565b341561016157600080fd5b6100b4600160a060020a03600435166024356104c8565b341561018357600080fd5b6100b4600160a060020a03600435166024356105c3565b34156101a557600080fd5b6100db600160a060020a0360043581169060243516610667565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b6000600160a060020a038316151561024857600080fd5b600160a060020a03841660009081526001602052604090205482111561026d57600080fd5b600160a060020a03808516600090815260026020908152604080832033909416835292905220548211156102a057600080fd5b600160a060020a0384166000908152600160205260409020546102c9908363ffffffff61069216565b600160a060020a0380861660009081526001602052604080822093909355908516815220546102fe908363ffffffff6106a416565b600160a060020a03808516600090815260016020908152604080832094909455878316825260028152838220339093168252919091522054610346908363ffffffff61069216565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120548083111561041057600160a060020a033381166000908152600260209081526040808320938816835292905290812055610447565b610420818463ffffffff61069216565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b6000600160a060020a03831615156104df57600080fd5b600160a060020a03331660009081526001602052604090205482111561050457600080fd5b600160a060020a03331660009081526001602052604090205461052d908363ffffffff61069216565b600160a060020a033381166000908152600160205260408082209390935590851681522054610562908363ffffffff6106a416565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120546105fb908363ffffffff6106a416565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60008282111561069e57fe5b50900390565b6000828201838110156106b357fe5b93925050505600a165627a7a723058205f9162a752705b67e588c692e830ef89b594ff42e8744aa88e4a9b264fb0fc850029",
  "deployedBytecode": "0x60606040526004361061008d5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095ea7b3811461009257806318160ddd146100c857806323b872dd146100ed578063661884631461011557806370a0823114610137578063a9059cbb14610156578063d73dd62314610178578063dd62ed3e1461019a575b600080fd5b341561009d57600080fd5b6100b4600160a060020a03600435166024356101bf565b604051901515815260200160405180910390f35b34156100d357600080fd5b6100db61022b565b60405190815260200160405180910390f35b34156100f857600080fd5b6100b4600160a060020a0360043581169060243516604435610231565b341561012057600080fd5b6100b4600160a060020a03600435166024356103b3565b341561014257600080fd5b6100db600160a060020a03600435166104ad565b341561016157600080fd5b6100b4600160a060020a03600435166024356104c8565b341561018357600080fd5b6100b4600160a060020a03600435166024356105c3565b34156101a557600080fd5b6100db600160a060020a0360043581169060243516610667565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b6000600160a060020a038316151561024857600080fd5b600160a060020a03841660009081526001602052604090205482111561026d57600080fd5b600160a060020a03808516600090815260026020908152604080832033909416835292905220548211156102a057600080fd5b600160a060020a0384166000908152600160205260409020546102c9908363ffffffff61069216565b600160a060020a0380861660009081526001602052604080822093909355908516815220546102fe908363ffffffff6106a416565b600160a060020a03808516600090815260016020908152604080832094909455878316825260028152838220339093168252919091522054610346908363ffffffff61069216565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120548083111561041057600160a060020a033381166000908152600260209081526040808320938816835292905290812055610447565b610420818463ffffffff61069216565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b6000600160a060020a03831615156104df57600080fd5b600160a060020a03331660009081526001602052604090205482111561050457600080fd5b600160a060020a03331660009081526001602052604090205461052d908363ffffffff61069216565b600160a060020a033381166000908152600160205260408082209390935590851681522054610562908363ffffffff6106a416565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120546105fb908363ffffffff6106a416565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60008282111561069e57fe5b50900390565b6000828201838110156106b357fe5b93925050505600a165627a7a723058205f9162a752705b67e588c692e830ef89b594ff42e8744aa88e4a9b264fb0fc850029",
  "sourceMap": "345:3659:41:-;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "345:3659:41:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1799:183;;;;;;;;;;-1:-1:-1;;;;;1799:183:41;;;;;;;;;;;;;;;;;;;;;;;;179:26:39;;;;;;;;;;;;;;;;;;;;;;;;;;;737:439:41;;;;;;;;;;-1:-1:-1;;;;;737:439:41;;;;;;;;;;;;3603:398;;;;;;;;;;-1:-1:-1;;;;;3603:398:41;;;;;;;1018:107:36;;;;;;;;;;-1:-1:-1;;;;;1018:107:36;;;;;437:379;;;;;;;;;;-1:-1:-1;;;;;437:379:36;;;;;;;2884:257:41;;;;;;;;;;-1:-1:-1;;;;;2884:257:41;;;;;;;2301:126;;;;;;;;;;-1:-1:-1;;;;;2301:126:41;;;;;;;;;;1799:183;-1:-1:-1;;;;;1886:10:41;1878:19;;1866:4;1878:19;;;:7;:19;;;;;;;;:29;;;;;;;;;;;;;:38;;;1866:4;;1878:29;:19;1922:38;;1910:6;;1922:38;;;;;;;;;;;;;-1:-1:-1;1973:4:41;1799:183;;;;:::o;179:26:39:-;;;;:::o;737:439:41:-;819:4;-1:-1:-1;;;;;839:17:41;;;;831:26;;;;;;-1:-1:-1;;;;;881:15:41;;;;;;:8;:15;;;;;;871:25;;;863:34;;;;;;-1:-1:-1;;;;;921:14:41;;;;;;;:7;:14;;;;;;;;936:10;921:26;;;;;;;;;;911:36;;;903:45;;;;;;-1:-1:-1;;;;;973:15:41;;;;;;:8;:15;;;;;;:27;;993:6;973:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;955:15:41;;;;;;;:8;:15;;;;;;:45;;;;1022:13;;;;;;;:25;;1040:6;1022:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;1006:13:41;;;;;;;:8;:13;;;;;;;;:41;;;;1082:14;;;;;:7;:14;;;;;1097:10;1082:26;;;;;;;;;;;:38;;1113:6;1082:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;1053:14:41;;;;;;;:7;:14;;;;;;;;1068:10;1053:26;;;;;;;;;;;:67;;;;1126:28;;;;;;1147:6;;1126:28;;;;;;;;;;;;;-1:-1:-1;1167:4:41;737:439;;;;;:::o;3603:398::-;-1:-1:-1;;;;;3722:10:41;3714:19;;3686:4;3714:19;;;:7;:19;;;;;;;;:29;;;;;;;;;;;;3753:27;;;3749:164;;;-1:-1:-1;;;;;3798:10:41;3790:19;;3822:1;3790:19;;;:7;:19;;;;;;;;:29;;;;;;;;;;;:33;3749:164;;;3876:30;:8;3889:16;3876:30;:12;:30;:::i;:::-;-1:-1:-1;;;;;3852:10:41;3844:19;;;;;;:7;:19;;;;;;;;:29;;;;;;;;;:62;3749:164;-1:-1:-1;;;;;3927:10:41;3918:61;;3949:19;;;;:7;:19;;;;;;;;3918:61;;;3949:29;;;;;;;;;;;;3918:61;;;;;;;;;;;;;;;-1:-1:-1;3992:4:41;;3603:398;-1:-1:-1;;;3603:398:41:o;1018:107:36:-;-1:-1:-1;;;;;1104:16:36;1074:15;1104:16;;;:8;:16;;;;;;;1018:107::o;437:379::-;500:4;-1:-1:-1;;;;;520:17:36;;;;512:26;;;;;;-1:-1:-1;;;;;571:10:36;562:20;;;;;:8;:20;;;;;;552:30;;;544:39;;;;;;-1:-1:-1;;;;;685:10:36;676:20;;;;;:8;:20;;;;;;:32;;701:6;676:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;662:10:36;653:20;;;;;;:8;:20;;;;;;:55;;;;730:13;;;;;;;:25;;748:6;730:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;714:13:36;;;;;;;:8;:13;;;;;;;:41;;;;:13;770:10;761:33;;;;;;787:6;;761:33;;;;;;;;;;;;;-1:-1:-1;807:4:36;437:379;;;;:::o;2884:257:41:-;-1:-1:-1;;;;;3014:10:41;3006:19;;2962:4;3006:19;;;:7;:19;;;;;;;;:29;;;;;;;;;;;;:46;;3040:11;3006:46;:33;:46;:::i;:::-;-1:-1:-1;;;;;2982:10:41;2974:19;;;;;;:7;:19;;;;;;;;:29;;;;;;;;;;;;;;:78;;;:29;;:19;;3058:61;;2974:78;3058:61;;;;;;;;;;;;;-1:-1:-1;3132:4:41;2884:257;;;;:::o;2301:126::-;-1:-1:-1;;;;;2397:15:41;;;2375:7;2397:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;2301:126::o;584:110:33:-;642:7;664:6;;;;657:14;;;;-1:-1:-1;684:5:33;;;584:110::o;698:129::-;756:7;783:5;;;801:6;;;;794:14;;;;821:1;698:129;-1:-1:-1;;;698:129:33:o",
  "source": "pragma solidity ^0.4.18;\n\n\nimport './BasicToken.sol';\nimport './ERC20.sol';\n\n\n/**\n * @title Standard ERC20 token\n *\n * @dev Implementation of the basic standard token.\n * @dev https://github.com/ethereum/EIPs/issues/20\n * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol\n */\ncontract StandardToken is ERC20, BasicToken {\n\n  mapping (address => mapping (address => uint256)) internal allowed;\n\n\n  /**\n   * @dev Transfer tokens from one address to another\n   * @param _from address The address which you want to send tokens from\n   * @param _to address The address which you want to transfer to\n   * @param _value uint256 the amount of tokens to be transferred\n   */\n  function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {\n    require(_to != address(0));\n    require(_value <= balances[_from]);\n    require(_value <= allowed[_from][msg.sender]);\n\n    balances[_from] = balances[_from].sub(_value);\n    balances[_to] = balances[_to].add(_value);\n    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);\n    Transfer(_from, _to, _value);\n    return true;\n  }\n\n  /**\n   * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n   *\n   * Beware that changing an allowance with this method brings the risk that someone may use both the old\n   * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\n   * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\n   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n   * @param _spender The address which will spend the funds.\n   * @param _value The amount of tokens to be spent.\n   */\n  function approve(address _spender, uint256 _value) public returns (bool) {\n    allowed[msg.sender][_spender] = _value;\n    Approval(msg.sender, _spender, _value);\n    return true;\n  }\n\n  /**\n   * @dev Function to check the amount of tokens that an owner allowed to a spender.\n   * @param _owner address The address which owns the funds.\n   * @param _spender address The address which will spend the funds.\n   * @return A uint256 specifying the amount of tokens still available for the spender.\n   */\n  function allowance(address _owner, address _spender) public view returns (uint256) {\n    return allowed[_owner][_spender];\n  }\n\n  /**\n   * @dev Increase the amount of tokens that an owner allowed to a spender.\n   *\n   * approve should be called when allowed[_spender] == 0. To increment\n   * allowed value is better to use this function to avoid 2 calls (and wait until\n   * the first transaction is mined)\n   * From MonolithDAO Token.sol\n   * @param _spender The address which will spend the funds.\n   * @param _addedValue The amount of tokens to increase the allowance by.\n   */\n  function increaseApproval(address _spender, uint _addedValue) public returns (bool) {\n    allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);\n    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);\n    return true;\n  }\n\n  /**\n   * @dev Decrease the amount of tokens that an owner allowed to a spender.\n   *\n   * approve should be called when allowed[_spender] == 0. To decrement\n   * allowed value is better to use this function to avoid 2 calls (and wait until\n   * the first transaction is mined)\n   * From MonolithDAO Token.sol\n   * @param _spender The address which will spend the funds.\n   * @param _subtractedValue The amount of tokens to decrease the allowance by.\n   */\n  function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {\n    uint oldValue = allowed[msg.sender][_spender];\n    if (_subtractedValue > oldValue) {\n      allowed[msg.sender][_spender] = 0;\n    } else {\n      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);\n    }\n    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);\n    return true;\n  }\n\n}\n",
  "sourcePath": "zeppelin-solidity/contracts/token/StandardToken.sol",
  "ast": {
    "attributes": {
      "absolutePath": "zeppelin-solidity/contracts/token/StandardToken.sol",
      "exportedSymbols": {
        "StandardToken": [
          11999
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 11755,
        "name": "PragmaDirective",
        "src": "0:24:41"
      },
      {
        "attributes": {
          "SourceUnit": 11532,
          "absolutePath": "zeppelin-solidity/contracts/token/BasicToken.sol",
          "file": "./BasicToken.sol",
          "scope": 12000,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 11756,
        "name": "ImportDirective",
        "src": "27:26:41"
      },
      {
        "attributes": {
          "SourceUnit": 11630,
          "absolutePath": "zeppelin-solidity/contracts/token/ERC20.sol",
          "file": "./ERC20.sol",
          "scope": 12000,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 11757,
        "name": "ImportDirective",
        "src": "54:21:41"
      },
      {
        "attributes": {
          "contractDependencies": [
            11531,
            11629,
            11658
          ],
          "contractKind": "contract",
          "documentation": "@title Standard ERC20 token\n * @dev Implementation of the basic standard token.\n@dev https://github.com/ethereum/EIPs/issues/20\n@dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            11999,
            11531,
            11629,
            11658
          ],
          "name": "StandardToken",
          "scope": 12000
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "ERC20",
                  "referencedDeclaration": 11629,
                  "type": "contract ERC20"
                },
                "id": 11758,
                "name": "UserDefinedTypeName",
                "src": "371:5:41"
              }
            ],
            "id": 11759,
            "name": "InheritanceSpecifier",
            "src": "371:5:41"
          },
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "BasicToken",
                  "referencedDeclaration": 11531,
                  "type": "contract BasicToken"
                },
                "id": 11760,
                "name": "UserDefinedTypeName",
                "src": "378:10:41"
              }
            ],
            "id": 11761,
            "name": "InheritanceSpecifier",
            "src": "378:10:41"
          },
          {
            "attributes": {
              "constant": false,
              "name": "allowed",
              "scope": 11999,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(address => mapping(address => uint256))",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(address => mapping(address => uint256))"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 11762,
                    "name": "ElementaryTypeName",
                    "src": "403:7:41"
                  },
                  {
                    "attributes": {
                      "type": "mapping(address => uint256)"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 11763,
                        "name": "ElementaryTypeName",
                        "src": "423:7:41"
                      },
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 11764,
                        "name": "ElementaryTypeName",
                        "src": "434:7:41"
                      }
                    ],
                    "id": 11765,
                    "name": "Mapping",
                    "src": "414:28:41"
                  }
                ],
                "id": 11766,
                "name": "Mapping",
                "src": "394:49:41"
              }
            ],
            "id": 11767,
            "name": "VariableDeclaration",
            "src": "394:66:41"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "transferFrom",
              "payable": false,
              "scope": 11999,
              "stateMutability": "nonpayable",
              "superFunction": 11611,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_from",
                      "scope": 11853,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 11768,
                        "name": "ElementaryTypeName",
                        "src": "759:7:41"
                      }
                    ],
                    "id": 11769,
                    "name": "VariableDeclaration",
                    "src": "759:13:41"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_to",
                      "scope": 11853,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 11770,
                        "name": "ElementaryTypeName",
                        "src": "774:7:41"
                      }
                    ],
                    "id": 11771,
                    "name": "VariableDeclaration",
                    "src": "774:11:41"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_value",
                      "scope": 11853,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 11772,
                        "name": "ElementaryTypeName",
                        "src": "787:7:41"
                      }
                    ],
                    "id": 11773,
                    "name": "VariableDeclaration",
                    "src": "787:14:41"
                  }
                ],
                "id": 11774,
                "name": "ParameterList",
                "src": "758:44:41"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 11853,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 11775,
                        "name": "ElementaryTypeName",
                        "src": "819:4:41"
                      }
                    ],
                    "id": 11776,
                    "name": "VariableDeclaration",
                    "src": "819:4:41"
                  }
                ],
                "id": 11777,
                "name": "ParameterList",
                "src": "818:6:41"
              },
              {
                "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 12014,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 11778,
                            "name": "Identifier",
                            "src": "831:7:41"
                          },
                          {
                            "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": 11771,
                                  "type": "address",
                                  "value": "_to"
                                },
                                "id": 11779,
                                "name": "Identifier",
                                "src": "839:3:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "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": 11780,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "846:7:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 11781,
                                    "name": "Literal",
                                    "src": "854:1:41"
                                  }
                                ],
                                "id": 11782,
                                "name": "FunctionCall",
                                "src": "846:10:41"
                              }
                            ],
                            "id": 11783,
                            "name": "BinaryOperation",
                            "src": "839:17:41"
                          }
                        ],
                        "id": 11784,
                        "name": "FunctionCall",
                        "src": "831:26:41"
                      }
                    ],
                    "id": 11785,
                    "name": "ExpressionStatement",
                    "src": "831:26:41"
                  },
                  {
                    "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 12014,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 11786,
                            "name": "Identifier",
                            "src": "863:7:41"
                          },
                          {
                            "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": 11773,
                                  "type": "uint256",
                                  "value": "_value"
                                },
                                "id": 11787,
                                "name": "Identifier",
                                "src": "871:6:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 11458,
                                      "type": "mapping(address => uint256)",
                                      "value": "balances"
                                    },
                                    "id": 11788,
                                    "name": "Identifier",
                                    "src": "881:8:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 11769,
                                      "type": "address",
                                      "value": "_from"
                                    },
                                    "id": 11789,
                                    "name": "Identifier",
                                    "src": "890:5:41"
                                  }
                                ],
                                "id": 11790,
                                "name": "IndexAccess",
                                "src": "881:15:41"
                              }
                            ],
                            "id": 11791,
                            "name": "BinaryOperation",
                            "src": "871:25:41"
                          }
                        ],
                        "id": 11792,
                        "name": "FunctionCall",
                        "src": "863:34:41"
                      }
                    ],
                    "id": 11793,
                    "name": "ExpressionStatement",
                    "src": "863:34:41"
                  },
                  {
                    "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 12014,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 11794,
                            "name": "Identifier",
                            "src": "903:7:41"
                          },
                          {
                            "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": 11773,
                                  "type": "uint256",
                                  "value": "_value"
                                },
                                "id": 11795,
                                "name": "Identifier",
                                "src": "911:6:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(address => uint256)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 11767,
                                          "type": "mapping(address => mapping(address => uint256))",
                                          "value": "allowed"
                                        },
                                        "id": 11796,
                                        "name": "Identifier",
                                        "src": "921:7:41"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 11769,
                                          "type": "address",
                                          "value": "_from"
                                        },
                                        "id": 11797,
                                        "name": "Identifier",
                                        "src": "929:5:41"
                                      }
                                    ],
                                    "id": 11798,
                                    "name": "IndexAccess",
                                    "src": "921:14:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "sender",
                                      "referencedDeclaration": null,
                                      "type": "address"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 12011,
                                          "type": "msg",
                                          "value": "msg"
                                        },
                                        "id": 11799,
                                        "name": "Identifier",
                                        "src": "936:3:41"
                                      }
                                    ],
                                    "id": 11800,
                                    "name": "MemberAccess",
                                    "src": "936:10:41"
                                  }
                                ],
                                "id": 11801,
                                "name": "IndexAccess",
                                "src": "921:26:41"
                              }
                            ],
                            "id": 11802,
                            "name": "BinaryOperation",
                            "src": "911:36:41"
                          }
                        ],
                        "id": 11803,
                        "name": "FunctionCall",
                        "src": "903:45:41"
                      }
                    ],
                    "id": 11804,
                    "name": "ExpressionStatement",
                    "src": "903:45:41"
                  },
                  {
                    "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": 11458,
                                  "type": "mapping(address => uint256)",
                                  "value": "balances"
                                },
                                "id": 11805,
                                "name": "Identifier",
                                "src": "955:8:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 11769,
                                  "type": "address",
                                  "value": "_from"
                                },
                                "id": 11806,
                                "name": "Identifier",
                                "src": "964:5:41"
                              }
                            ],
                            "id": 11807,
                            "name": "IndexAccess",
                            "src": "955:15:41"
                          },
                          {
                            "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": 11340,
                                  "type": "function (uint256,uint256) pure returns (uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 11458,
                                          "type": "mapping(address => uint256)",
                                          "value": "balances"
                                        },
                                        "id": 11808,
                                        "name": "Identifier",
                                        "src": "973:8:41"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 11769,
                                          "type": "address",
                                          "value": "_from"
                                        },
                                        "id": 11809,
                                        "name": "Identifier",
                                        "src": "982:5:41"
                                      }
                                    ],
                                    "id": 11810,
                                    "name": "IndexAccess",
                                    "src": "973:15:41"
                                  }
                                ],
                                "id": 11811,
                                "name": "MemberAccess",
                                "src": "973:19:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 11773,
                                  "type": "uint256",
                                  "value": "_value"
                                },
                                "id": 11812,
                                "name": "Identifier",
                                "src": "993:6:41"
                              }
                            ],
                            "id": 11813,
                            "name": "FunctionCall",
                            "src": "973:27:41"
                          }
                        ],
                        "id": 11814,
                        "name": "Assignment",
                        "src": "955:45:41"
                      }
                    ],
                    "id": 11815,
                    "name": "ExpressionStatement",
                    "src": "955:45:41"
                  },
                  {
                    "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": 11458,
                                  "type": "mapping(address => uint256)",
                                  "value": "balances"
                                },
                                "id": 11816,
                                "name": "Identifier",
                                "src": "1006:8:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 11771,
                                  "type": "address",
                                  "value": "_to"
                                },
                                "id": 11817,
                                "name": "Identifier",
                                "src": "1015:3:41"
                              }
                            ],
                            "id": 11818,
                            "name": "IndexAccess",
                            "src": "1006:13:41"
                          },
                          {
                            "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": 11364,
                                  "type": "function (uint256,uint256) pure returns (uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 11458,
                                          "type": "mapping(address => uint256)",
                                          "value": "balances"
                                        },
                                        "id": 11819,
                                        "name": "Identifier",
                                        "src": "1022:8:41"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 11771,
                                          "type": "address",
                                          "value": "_to"
                                        },
                                        "id": 11820,
                                        "name": "Identifier",
                                        "src": "1031:3:41"
                                      }
                                    ],
                                    "id": 11821,
                                    "name": "IndexAccess",
                                    "src": "1022:13:41"
                                  }
                                ],
                                "id": 11822,
                                "name": "MemberAccess",
                                "src": "1022:17:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 11773,
                                  "type": "uint256",
                                  "value": "_value"
                                },
                                "id": 11823,
                                "name": "Identifier",
                                "src": "1040:6:41"
                              }
                            ],
                            "id": 11824,
                            "name": "FunctionCall",
                            "src": "1022:25:41"
                          }
                        ],
                        "id": 11825,
                        "name": "Assignment",
                        "src": "1006:41:41"
                      }
                    ],
                    "id": 11826,
                    "name": "ExpressionStatement",
                    "src": "1006:41:41"
                  },
                  {
                    "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,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "mapping(address => uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 11767,
                                      "type": "mapping(address => mapping(address => uint256))",
                                      "value": "allowed"
                                    },
                                    "id": 11827,
                                    "name": "Identifier",
                                    "src": "1053:7:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 11769,
                                      "type": "address",
                                      "value": "_from"
                                    },
                                    "id": 11828,
                                    "name": "Identifier",
                                    "src": "1061:5:41"
                                  }
                                ],
                                "id": 11831,
                                "name": "IndexAccess",
                                "src": "1053:14:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 12011,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 11829,
                                    "name": "Identifier",
                                    "src": "1068:3:41"
                                  }
                                ],
                                "id": 11830,
                                "name": "MemberAccess",
                                "src": "1068:10:41"
                              }
                            ],
                            "id": 11832,
                            "name": "IndexAccess",
                            "src": "1053:26:41"
                          },
                          {
                            "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": 11340,
                                  "type": "function (uint256,uint256) pure returns (uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "mapping(address => uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 11767,
                                              "type": "mapping(address => mapping(address => uint256))",
                                              "value": "allowed"
                                            },
                                            "id": 11833,
                                            "name": "Identifier",
                                            "src": "1082:7:41"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 11769,
                                              "type": "address",
                                              "value": "_from"
                                            },
                                            "id": 11834,
                                            "name": "Identifier",
                                            "src": "1090:5:41"
                                          }
                                        ],
                                        "id": 11835,
                                        "name": "IndexAccess",
                                        "src": "1082:14:41"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "sender",
                                          "referencedDeclaration": null,
                                          "type": "address"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 12011,
                                              "type": "msg",
                                              "value": "msg"
                                            },
                                            "id": 11836,
                                            "name": "Identifier",
                                            "src": "1097:3:41"
                                          }
                                        ],
                                        "id": 11837,
                                        "name": "MemberAccess",
                                        "src": "1097:10:41"
                                      }
                                    ],
                                    "id": 11838,
                                    "name": "IndexAccess",
                                    "src": "1082:26:41"
                                  }
                                ],
                                "id": 11839,
                                "name": "MemberAccess",
                                "src": "1082:30:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 11773,
                                  "type": "uint256",
                                  "value": "_value"
                                },
                                "id": 11840,
                                "name": "Identifier",
                                "src": "1113:6:41"
                              }
                            ],
                            "id": 11841,
                            "name": "FunctionCall",
                            "src": "1082:38:41"
                          }
                        ],
                        "id": 11842,
                        "name": "Assignment",
                        "src": "1053:67:41"
                      }
                    ],
                    "id": 11843,
                    "name": "ExpressionStatement",
                    "src": "1053:67:41"
                  },
                  {
                    "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": 11657,
                              "type": "function (address,address,uint256)",
                              "value": "Transfer"
                            },
                            "id": 11844,
                            "name": "Identifier",
                            "src": "1126:8:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 11769,
                              "type": "address",
                              "value": "_from"
                            },
                            "id": 11845,
                            "name": "Identifier",
                            "src": "1135:5:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 11771,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 11846,
                            "name": "Identifier",
                            "src": "1142:3:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 11773,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 11847,
                            "name": "Identifier",
                            "src": "1147:6:41"
                          }
                        ],
                        "id": 11848,
                        "name": "FunctionCall",
                        "src": "1126:28:41"
                      }
                    ],
                    "id": 11849,
                    "name": "ExpressionStatement",
                    "src": "1126:28:41"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 11777
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 11850,
                        "name": "Literal",
                        "src": "1167:4:41"
                      }
                    ],
                    "id": 11851,
                    "name": "Return",
                    "src": "1160:11:41"
                  }
                ],
                "id": 11852,
                "name": "Block",
                "src": "825:351:41"
              }
            ],
            "id": 11853,
            "name": "FunctionDefinition",
            "src": "737:439:41"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "approve",
              "payable": false,
              "scope": 11999,
              "stateMutability": "nonpayable",
              "superFunction": 11620,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_spender",
                      "scope": 11881,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 11854,
                        "name": "ElementaryTypeName",
                        "src": "1816:7:41"
                      }
                    ],
                    "id": 11855,
                    "name": "VariableDeclaration",
                    "src": "1816:16:41"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_value",
                      "scope": 11881,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 11856,
                        "name": "ElementaryTypeName",
                        "src": "1834:7:41"
                      }
                    ],
                    "id": 11857,
                    "name": "VariableDeclaration",
                    "src": "1834:14:41"
                  }
                ],
                "id": 11858,
                "name": "ParameterList",
                "src": "1815:34:41"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 11881,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 11859,
                        "name": "ElementaryTypeName",
                        "src": "1866:4:41"
                      }
                    ],
                    "id": 11860,
                    "name": "VariableDeclaration",
                    "src": "1866:4:41"
                  }
                ],
                "id": 11861,
                "name": "ParameterList",
                "src": "1865:6:41"
              },
              {
                "children": [
                  {
                    "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,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "mapping(address => uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 11767,
                                      "type": "mapping(address => mapping(address => uint256))",
                                      "value": "allowed"
                                    },
                                    "id": 11862,
                                    "name": "Identifier",
                                    "src": "1878:7:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "sender",
                                      "referencedDeclaration": null,
                                      "type": "address"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 12011,
                                          "type": "msg",
                                          "value": "msg"
                                        },
                                        "id": 11863,
                                        "name": "Identifier",
                                        "src": "1886:3:41"
                                      }
                                    ],
                                    "id": 11864,
                                    "name": "MemberAccess",
                                    "src": "1886:10:41"
                                  }
                                ],
                                "id": 11866,
                                "name": "IndexAccess",
                                "src": "1878:19:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 11855,
                                  "type": "address",
                                  "value": "_spender"
                                },
                                "id": 11865,
                                "name": "Identifier",
                                "src": "1898:8:41"
                              }
                            ],
                            "id": 11867,
                            "name": "IndexAccess",
                            "src": "1878:29:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 11857,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 11868,
                            "name": "Identifier",
                            "src": "1910:6:41"
                          }
                        ],
                        "id": 11869,
                        "name": "Assignment",
                        "src": "1878:38:41"
                      }
                    ],
                    "id": 11870,
                    "name": "ExpressionStatement",
                    "src": "1878:38:41"
                  },
                  {
                    "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": 11628,
                              "type": "function (address,address,uint256)",
                              "value": "Approval"
                            },
                            "id": 11871,
                            "name": "Identifier",
                            "src": "1922:8:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 11872,
                                "name": "Identifier",
                                "src": "1931:3:41"
                              }
                            ],
                            "id": 11873,
                            "name": "MemberAccess",
                            "src": "1931:10:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 11855,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 11874,
                            "name": "Identifier",
                            "src": "1943:8:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 11857,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 11875,
                            "name": "Identifier",
                            "src": "1953:6:41"
                          }
                        ],
                        "id": 11876,
                        "name": "FunctionCall",
                        "src": "1922:38:41"
                      }
                    ],
                    "id": 11877,
                    "name": "ExpressionStatement",
                    "src": "1922:38:41"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 11861
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 11878,
                        "name": "Literal",
                        "src": "1973:4:41"
                      }
                    ],
                    "id": 11879,
                    "name": "Return",
                    "src": "1966:11:41"
                  }
                ],
                "id": 11880,
                "name": "Block",
                "src": "1872:110:41"
              }
            ],
            "id": 11881,
            "name": "FunctionDefinition",
            "src": "1799:183:41"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "allowance",
              "payable": false,
              "scope": 11999,
              "stateMutability": "view",
              "superFunction": 11600,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_owner",
                      "scope": 11897,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 11882,
                        "name": "ElementaryTypeName",
                        "src": "2320:7:41"
                      }
                    ],
                    "id": 11883,
                    "name": "VariableDeclaration",
                    "src": "2320:14:41"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_spender",
                      "scope": 11897,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 11884,
                        "name": "ElementaryTypeName",
                        "src": "2336:7:41"
                      }
                    ],
                    "id": 11885,
                    "name": "VariableDeclaration",
                    "src": "2336:16:41"
                  }
                ],
                "id": 11886,
                "name": "ParameterList",
                "src": "2319:34:41"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 11897,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 11887,
                        "name": "ElementaryTypeName",
                        "src": "2375:7:41"
                      }
                    ],
                    "id": 11888,
                    "name": "VariableDeclaration",
                    "src": "2375:7:41"
                  }
                ],
                "id": 11889,
                "name": "ParameterList",
                "src": "2374:9:41"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 11889
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "mapping(address => uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 11767,
                                  "type": "mapping(address => mapping(address => uint256))",
                                  "value": "allowed"
                                },
                                "id": 11890,
                                "name": "Identifier",
                                "src": "2397:7:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 11883,
                                  "type": "address",
                                  "value": "_owner"
                                },
                                "id": 11891,
                                "name": "Identifier",
                                "src": "2405:6:41"
                              }
                            ],
                            "id": 11892,
                            "name": "IndexAccess",
                            "src": "2397:15:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 11885,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 11893,
                            "name": "Identifier",
                            "src": "2413:8:41"
                          }
                        ],
                        "id": 11894,
                        "name": "IndexAccess",
                        "src": "2397:25:41"
                      }
                    ],
                    "id": 11895,
                    "name": "Return",
                    "src": "2390:32:41"
                  }
                ],
                "id": 11896,
                "name": "Block",
                "src": "2384:43:41"
              }
            ],
            "id": 11897,
            "name": "FunctionDefinition",
            "src": "2301:126:41"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "increaseApproval",
              "payable": false,
              "scope": 11999,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_spender",
                      "scope": 11938,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 11898,
                        "name": "ElementaryTypeName",
                        "src": "2910:7:41"
                      }
                    ],
                    "id": 11899,
                    "name": "VariableDeclaration",
                    "src": "2910:16:41"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_addedValue",
                      "scope": 11938,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 11900,
                        "name": "ElementaryTypeName",
                        "src": "2928:4:41"
                      }
                    ],
                    "id": 11901,
                    "name": "VariableDeclaration",
                    "src": "2928:16:41"
                  }
                ],
                "id": 11902,
                "name": "ParameterList",
                "src": "2909:36:41"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 11938,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 11903,
                        "name": "ElementaryTypeName",
                        "src": "2962:4:41"
                      }
                    ],
                    "id": 11904,
                    "name": "VariableDeclaration",
                    "src": "2962:4:41"
                  }
                ],
                "id": 11905,
                "name": "ParameterList",
                "src": "2961:6:41"
              },
              {
                "children": [
                  {
                    "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,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "mapping(address => uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 11767,
                                      "type": "mapping(address => mapping(address => uint256))",
                                      "value": "allowed"
                                    },
                                    "id": 11906,
                                    "name": "Identifier",
                                    "src": "2974:7:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "sender",
                                      "referencedDeclaration": null,
                                      "type": "address"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 12011,
                                          "type": "msg",
                                          "value": "msg"
                                        },
                                        "id": 11907,
                                        "name": "Identifier",
                                        "src": "2982:3:41"
                                      }
                                    ],
                                    "id": 11908,
                                    "name": "MemberAccess",
                                    "src": "2982:10:41"
                                  }
                                ],
                                "id": 11910,
                                "name": "IndexAccess",
                                "src": "2974:19:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 11899,
                                  "type": "address",
                                  "value": "_spender"
                                },
                                "id": 11909,
                                "name": "Identifier",
                                "src": "2994:8:41"
                              }
                            ],
                            "id": 11911,
                            "name": "IndexAccess",
                            "src": "2974:29:41"
                          },
                          {
                            "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": 11364,
                                  "type": "function (uint256,uint256) pure returns (uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "mapping(address => uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 11767,
                                              "type": "mapping(address => mapping(address => uint256))",
                                              "value": "allowed"
                                            },
                                            "id": 11912,
                                            "name": "Identifier",
                                            "src": "3006:7:41"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "sender",
                                              "referencedDeclaration": null,
                                              "type": "address"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 12011,
                                                  "type": "msg",
                                                  "value": "msg"
                                                },
                                                "id": 11913,
                                                "name": "Identifier",
                                                "src": "3014:3:41"
                                              }
                                            ],
                                            "id": 11914,
                                            "name": "MemberAccess",
                                            "src": "3014:10:41"
                                          }
                                        ],
                                        "id": 11915,
                                        "name": "IndexAccess",
                                        "src": "3006:19:41"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 11899,
                                          "type": "address",
                                          "value": "_spender"
                                        },
                                        "id": 11916,
                                        "name": "Identifier",
                                        "src": "3026:8:41"
                                      }
                                    ],
                                    "id": 11917,
                                    "name": "IndexAccess",
                                    "src": "3006:29:41"
                                  }
                                ],
                                "id": 11918,
                                "name": "MemberAccess",
                                "src": "3006:33:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 11901,
                                  "type": "uint256",
                                  "value": "_addedValue"
                                },
                                "id": 11919,
                                "name": "Identifier",
                                "src": "3040:11:41"
                              }
                            ],
                            "id": 11920,
                            "name": "FunctionCall",
                            "src": "3006:46:41"
                          }
                        ],
                        "id": 11921,
                        "name": "Assignment",
                        "src": "2974:78:41"
                      }
                    ],
                    "id": 11922,
                    "name": "ExpressionStatement",
                    "src": "2974:78:41"
                  },
                  {
                    "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": 11628,
                              "type": "function (address,address,uint256)",
                              "value": "Approval"
                            },
                            "id": 11923,
                            "name": "Identifier",
                            "src": "3058:8:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 11924,
                                "name": "Identifier",
                                "src": "3067:3:41"
                              }
                            ],
                            "id": 11925,
                            "name": "MemberAccess",
                            "src": "3067:10:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 11899,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 11926,
                            "name": "Identifier",
                            "src": "3079:8:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "mapping(address => uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 11767,
                                      "type": "mapping(address => mapping(address => uint256))",
                                      "value": "allowed"
                                    },
                                    "id": 11927,
                                    "name": "Identifier",
                                    "src": "3089:7:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "sender",
                                      "referencedDeclaration": null,
                                      "type": "address"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 12011,
                                          "type": "msg",
                                          "value": "msg"
                                        },
                                        "id": 11928,
                                        "name": "Identifier",
                                        "src": "3097:3:41"
                                      }
                                    ],
                                    "id": 11929,
                                    "name": "MemberAccess",
                                    "src": "3097:10:41"
                                  }
                                ],
                                "id": 11930,
                                "name": "IndexAccess",
                                "src": "3089:19:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 11899,
                                  "type": "address",
                                  "value": "_spender"
                                },
                                "id": 11931,
                                "name": "Identifier",
                                "src": "3109:8:41"
                              }
                            ],
                            "id": 11932,
                            "name": "IndexAccess",
                            "src": "3089:29:41"
                          }
                        ],
                        "id": 11933,
                        "name": "FunctionCall",
                        "src": "3058:61:41"
                      }
                    ],
                    "id": 11934,
                    "name": "ExpressionStatement",
                    "src": "3058:61:41"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 11905
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 11935,
                        "name": "Literal",
                        "src": "3132:4:41"
                      }
                    ],
                    "id": 11936,
                    "name": "Return",
                    "src": "3125:11:41"
                  }
                ],
                "id": 11937,
                "name": "Block",
                "src": "2968:173:41"
              }
            ],
            "id": 11938,
            "name": "FunctionDefinition",
            "src": "2884:257:41"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "decreaseApproval",
              "payable": false,
              "scope": 11999,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_spender",
                      "scope": 11998,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 11939,
                        "name": "ElementaryTypeName",
                        "src": "3629:7:41"
                      }
                    ],
                    "id": 11940,
                    "name": "VariableDeclaration",
                    "src": "3629:16:41"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_subtractedValue",
                      "scope": 11998,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 11941,
                        "name": "ElementaryTypeName",
                        "src": "3647:4:41"
                      }
                    ],
                    "id": 11942,
                    "name": "VariableDeclaration",
                    "src": "3647:21:41"
                  }
                ],
                "id": 11943,
                "name": "ParameterList",
                "src": "3628:41:41"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 11998,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 11944,
                        "name": "ElementaryTypeName",
                        "src": "3686:4:41"
                      }
                    ],
                    "id": 11945,
                    "name": "VariableDeclaration",
                    "src": "3686:4:41"
                  }
                ],
                "id": 11946,
                "name": "ParameterList",
                "src": "3685:6:41"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        11948
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "oldValue",
                          "scope": 11998,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 11947,
                            "name": "ElementaryTypeName",
                            "src": "3698:4:41"
                          }
                        ],
                        "id": 11948,
                        "name": "VariableDeclaration",
                        "src": "3698:13:41"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "mapping(address => uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 11767,
                                  "type": "mapping(address => mapping(address => uint256))",
                                  "value": "allowed"
                                },
                                "id": 11949,
                                "name": "Identifier",
                                "src": "3714:7:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 12011,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 11950,
                                    "name": "Identifier",
                                    "src": "3722:3:41"
                                  }
                                ],
                                "id": 11951,
                                "name": "MemberAccess",
                                "src": "3722:10:41"
                              }
                            ],
                            "id": 11952,
                            "name": "IndexAccess",
                            "src": "3714:19:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 11940,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 11953,
                            "name": "Identifier",
                            "src": "3734:8:41"
                          }
                        ],
                        "id": 11954,
                        "name": "IndexAccess",
                        "src": "3714:29:41"
                      }
                    ],
                    "id": 11955,
                    "name": "VariableDeclarationStatement",
                    "src": "3698:45:41"
                  },
                  {
                    "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": 11942,
                              "type": "uint256",
                              "value": "_subtractedValue"
                            },
                            "id": 11956,
                            "name": "Identifier",
                            "src": "3753:16:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 11948,
                              "type": "uint256",
                              "value": "oldValue"
                            },
                            "id": 11957,
                            "name": "Identifier",
                            "src": "3772:8:41"
                          }
                        ],
                        "id": 11958,
                        "name": "BinaryOperation",
                        "src": "3753:27:41"
                      },
                      {
                        "children": [
                          {
                            "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,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "mapping(address => uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 11767,
                                              "type": "mapping(address => mapping(address => uint256))",
                                              "value": "allowed"
                                            },
                                            "id": 11959,
                                            "name": "Identifier",
                                            "src": "3790:7:41"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "sender",
                                              "referencedDeclaration": null,
                                              "type": "address"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 12011,
                                                  "type": "msg",
                                                  "value": "msg"
                                                },
                                                "id": 11960,
                                                "name": "Identifier",
                                                "src": "3798:3:41"
                                              }
                                            ],
                                            "id": 11961,
                                            "name": "MemberAccess",
                                            "src": "3798:10:41"
                                          }
                                        ],
                                        "id": 11963,
                                        "name": "IndexAccess",
                                        "src": "3790:19:41"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 11940,
                                          "type": "address",
                                          "value": "_spender"
                                        },
                                        "id": 11962,
                                        "name": "Identifier",
                                        "src": "3810:8:41"
                                      }
                                    ],
                                    "id": 11964,
                                    "name": "IndexAccess",
                                    "src": "3790:29:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 11965,
                                    "name": "Literal",
                                    "src": "3822:1:41"
                                  }
                                ],
                                "id": 11966,
                                "name": "Assignment",
                                "src": "3790:33:41"
                              }
                            ],
                            "id": 11967,
                            "name": "ExpressionStatement",
                            "src": "3790:33:41"
                          }
                        ],
                        "id": 11968,
                        "name": "Block",
                        "src": "3782:48:41"
                      },
                      {
                        "children": [
                          {
                            "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,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "mapping(address => uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 11767,
                                              "type": "mapping(address => mapping(address => uint256))",
                                              "value": "allowed"
                                            },
                                            "id": 11969,
                                            "name": "Identifier",
                                            "src": "3844:7:41"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "sender",
                                              "referencedDeclaration": null,
                                              "type": "address"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 12011,
                                                  "type": "msg",
                                                  "value": "msg"
                                                },
                                                "id": 11970,
                                                "name": "Identifier",
                                                "src": "3852:3:41"
                                              }
                                            ],
                                            "id": 11971,
                                            "name": "MemberAccess",
                                            "src": "3852:10:41"
                                          }
                                        ],
                                        "id": 11973,
                                        "name": "IndexAccess",
                                        "src": "3844:19:41"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 11940,
                                          "type": "address",
                                          "value": "_spender"
                                        },
                                        "id": 11972,
                                        "name": "Identifier",
                                        "src": "3864:8:41"
                                      }
                                    ],
                                    "id": 11974,
                                    "name": "IndexAccess",
                                    "src": "3844:29:41"
                                  },
                                  {
                                    "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": 11340,
                                          "type": "function (uint256,uint256) pure returns (uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 11948,
                                              "type": "uint256",
                                              "value": "oldValue"
                                            },
                                            "id": 11975,
                                            "name": "Identifier",
                                            "src": "3876:8:41"
                                          }
                                        ],
                                        "id": 11976,
                                        "name": "MemberAccess",
                                        "src": "3876:12:41"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 11942,
                                          "type": "uint256",
                                          "value": "_subtractedValue"
                                        },
                                        "id": 11977,
                                        "name": "Identifier",
                                        "src": "3889:16:41"
                                      }
                                    ],
                                    "id": 11978,
                                    "name": "FunctionCall",
                                    "src": "3876:30:41"
                                  }
                                ],
                                "id": 11979,
                                "name": "Assignment",
                                "src": "3844:62:41"
                              }
                            ],
                            "id": 11980,
                            "name": "ExpressionStatement",
                            "src": "3844:62:41"
                          }
                        ],
                        "id": 11981,
                        "name": "Block",
                        "src": "3836:77:41"
                      }
                    ],
                    "id": 11982,
                    "name": "IfStatement",
                    "src": "3749:164:41"
                  },
                  {
                    "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": 11628,
                              "type": "function (address,address,uint256)",
                              "value": "Approval"
                            },
                            "id": 11983,
                            "name": "Identifier",
                            "src": "3918:8:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 11984,
                                "name": "Identifier",
                                "src": "3927:3:41"
                              }
                            ],
                            "id": 11985,
                            "name": "MemberAccess",
                            "src": "3927:10:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 11940,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 11986,
                            "name": "Identifier",
                            "src": "3939:8:41"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "mapping(address => uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 11767,
                                      "type": "mapping(address => mapping(address => uint256))",
                                      "value": "allowed"
                                    },
                                    "id": 11987,
                                    "name": "Identifier",
                                    "src": "3949:7:41"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "sender",
                                      "referencedDeclaration": null,
                                      "type": "address"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 12011,
                                          "type": "msg",
                                          "value": "msg"
                                        },
                                        "id": 11988,
                                        "name": "Identifier",
                                        "src": "3957:3:41"
                                      }
                                    ],
                                    "id": 11989,
                                    "name": "MemberAccess",
                                    "src": "3957:10:41"
                                  }
                                ],
                                "id": 11990,
                                "name": "IndexAccess",
                                "src": "3949:19:41"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 11940,
                                  "type": "address",
                                  "value": "_spender"
                                },
                                "id": 11991,
                                "name": "Identifier",
                                "src": "3969:8:41"
                              }
                            ],
                            "id": 11992,
                            "name": "IndexAccess",
                            "src": "3949:29:41"
                          }
                        ],
                        "id": 11993,
                        "name": "FunctionCall",
                        "src": "3918:61:41"
                      }
                    ],
                    "id": 11994,
                    "name": "ExpressionStatement",
                    "src": "3918:61:41"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 11946
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 11995,
                        "name": "Literal",
                        "src": "3992:4:41"
                      }
                    ],
                    "id": 11996,
                    "name": "Return",
                    "src": "3985:11:41"
                  }
                ],
                "id": 11997,
                "name": "Block",
                "src": "3692:309:41"
              }
            ],
            "id": 11998,
            "name": "FunctionDefinition",
            "src": "3603:398:41"
          }
        ],
        "id": 11999,
        "name": "ContractDefinition",
        "src": "345:3659:41"
      }
    ],
    "id": 12000,
    "name": "SourceUnit",
    "src": "0:4005:41"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-02-04T21:57:39.071Z"
}