{
  "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:39:-;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "345:3659:39:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1799:183;;;;;;;;;;-1:-1:-1;;;;;1799:183:39;;;;;;;;;;;;;;;;;;;;;;;;179:26:37;;;;;;;;;;;;;;;;;;;;;;;;;;;737:439:39;;;;;;;;;;-1:-1:-1;;;;;737:439:39;;;;;;;;;;;;3603:398;;;;;;;;;;-1:-1:-1;;;;;3603:398:39;;;;;;;1018:107:34;;;;;;;;;;-1:-1:-1;;;;;1018:107:34;;;;;437:379;;;;;;;;;;-1:-1:-1;;;;;437:379:34;;;;;;;2884:257:39;;;;;;;;;;-1:-1:-1;;;;;2884:257:39;;;;;;;2301:126;;;;;;;;;;-1:-1:-1;;;;;2301:126:39;;;;;;;;;;1799:183;-1:-1:-1;;;;;1886:10:39;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:39;1799:183;;;;:::o;179:26:37:-;;;;:::o;737:439:39:-;819:4;-1:-1:-1;;;;;839:17:39;;;;831:26;;;;;;-1:-1:-1;;;;;881:15:39;;;;;;:8;:15;;;;;;871:25;;;863:34;;;;;;-1:-1:-1;;;;;921:14:39;;;;;;;:7;:14;;;;;;;;936:10;921:26;;;;;;;;;;911:36;;;903:45;;;;;;-1:-1:-1;;;;;973:15:39;;;;;;:8;:15;;;;;;:27;;993:6;973:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;955:15:39;;;;;;;:8;:15;;;;;;:45;;;;1022:13;;;;;;;:25;;1040:6;1022:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;1006:13:39;;;;;;;:8;:13;;;;;;;;:41;;;;1082:14;;;;;:7;:14;;;;;1097:10;1082:26;;;;;;;;;;;:38;;1113:6;1082:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;1053:14:39;;;;;;;:7;:14;;;;;;;;1068:10;1053:26;;;;;;;;;;;:67;;;;1126:28;;;;;;1147:6;;1126:28;;;;;;;;;;;;;-1:-1:-1;1167:4:39;737:439;;;;;:::o;3603:398::-;-1:-1:-1;;;;;3722:10:39;3714:19;;3686:4;3714:19;;;:7;:19;;;;;;;;:29;;;;;;;;;;;;3753:27;;;3749:164;;;-1:-1:-1;;;;;3798:10:39;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:39;3844:19;;;;;;:7;:19;;;;;;;;:29;;;;;;;;;:62;3749:164;-1:-1:-1;;;;;3927:10:39;3918:61;;3949:19;;;;:7;:19;;;;;;;;3918:61;;;3949:29;;;;;;;;;;;;3918:61;;;;;;;;;;;;;;;-1:-1:-1;3992:4:39;;3603:398;-1:-1:-1;;;3603:398:39:o;1018:107:34:-;-1:-1:-1;;;;;1104:16:34;1074:15;1104:16;;;:8;:16;;;;;;;1018:107::o;437:379::-;500:4;-1:-1:-1;;;;;520:17:34;;;;512:26;;;;;;-1:-1:-1;;;;;571:10:34;562:20;;;;;:8;:20;;;;;;552:30;;;544:39;;;;;;-1:-1:-1;;;;;685:10:34;676:20;;;;;:8;:20;;;;;;:32;;701:6;676:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;662:10:34;653:20;;;;;;:8;:20;;;;;;:55;;;;730:13;;;;;;;:25;;748:6;730:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;714:13:34;;;;;;;:8;:13;;;;;;;:41;;;;:13;770:10;761:33;;;;;;787:6;;761:33;;;;;;;;;;;;;-1:-1:-1;807:4:34;437:379;;;;:::o;2884:257:39:-;-1:-1:-1;;;;;3014:10:39;3006:19;;2962:4;3006:19;;;:7;:19;;;;;;;;:29;;;;;;;;;;;;:46;;3040:11;3006:46;:33;:46;:::i;:::-;-1:-1:-1;;;;;2982:10:39;2974:19;;;;;;:7;:19;;;;;;;;:29;;;;;;;;;;;;;;:78;;;:29;;:19;;3058:61;;2974:78;3058:61;;;;;;;;;;;;;-1:-1:-1;3132:4:39;2884:257;;;;:::o;2301:126::-;-1:-1:-1;;;;;2397:15:39;;;2375:7;2397:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;2301:126::o;584:110:31:-;642:7;664:6;;;;657:14;;;;-1:-1:-1;684:5:31;;;584:110::o;698:129::-;756:7;783:5;;;801:6;;;;794:14;;;;821:1;698:129;-1:-1:-1;;;698:129:31: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": [
          10855
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 10611,
        "name": "PragmaDirective",
        "src": "0:24:39"
      },
      {
        "attributes": {
          "SourceUnit": 10388,
          "absolutePath": "zeppelin-solidity/contracts/token/BasicToken.sol",
          "file": "./BasicToken.sol",
          "scope": 10856,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 10612,
        "name": "ImportDirective",
        "src": "27:26:39"
      },
      {
        "attributes": {
          "SourceUnit": 10486,
          "absolutePath": "zeppelin-solidity/contracts/token/ERC20.sol",
          "file": "./ERC20.sol",
          "scope": 10856,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 10613,
        "name": "ImportDirective",
        "src": "54:21:39"
      },
      {
        "attributes": {
          "contractDependencies": [
            10387,
            10485,
            10514
          ],
          "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": [
            10855,
            10387,
            10485,
            10514
          ],
          "name": "StandardToken",
          "scope": 10856
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "ERC20",
                  "referencedDeclaration": 10485,
                  "type": "contract ERC20"
                },
                "id": 10614,
                "name": "UserDefinedTypeName",
                "src": "371:5:39"
              }
            ],
            "id": 10615,
            "name": "InheritanceSpecifier",
            "src": "371:5:39"
          },
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "BasicToken",
                  "referencedDeclaration": 10387,
                  "type": "contract BasicToken"
                },
                "id": 10616,
                "name": "UserDefinedTypeName",
                "src": "378:10:39"
              }
            ],
            "id": 10617,
            "name": "InheritanceSpecifier",
            "src": "378:10:39"
          },
          {
            "attributes": {
              "constant": false,
              "name": "allowed",
              "scope": 10855,
              "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": 10618,
                    "name": "ElementaryTypeName",
                    "src": "403:7:39"
                  },
                  {
                    "attributes": {
                      "type": "mapping(address => uint256)"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10619,
                        "name": "ElementaryTypeName",
                        "src": "423:7:39"
                      },
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 10620,
                        "name": "ElementaryTypeName",
                        "src": "434:7:39"
                      }
                    ],
                    "id": 10621,
                    "name": "Mapping",
                    "src": "414:28:39"
                  }
                ],
                "id": 10622,
                "name": "Mapping",
                "src": "394:49:39"
              }
            ],
            "id": 10623,
            "name": "VariableDeclaration",
            "src": "394:66:39"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "transferFrom",
              "payable": false,
              "scope": 10855,
              "stateMutability": "nonpayable",
              "superFunction": 10467,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_from",
                      "scope": 10709,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10624,
                        "name": "ElementaryTypeName",
                        "src": "759:7:39"
                      }
                    ],
                    "id": 10625,
                    "name": "VariableDeclaration",
                    "src": "759:13:39"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_to",
                      "scope": 10709,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10626,
                        "name": "ElementaryTypeName",
                        "src": "774:7:39"
                      }
                    ],
                    "id": 10627,
                    "name": "VariableDeclaration",
                    "src": "774:11:39"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_value",
                      "scope": 10709,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 10628,
                        "name": "ElementaryTypeName",
                        "src": "787:7:39"
                      }
                    ],
                    "id": 10629,
                    "name": "VariableDeclaration",
                    "src": "787:14:39"
                  }
                ],
                "id": 10630,
                "name": "ParameterList",
                "src": "758:44:39"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 10709,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 10631,
                        "name": "ElementaryTypeName",
                        "src": "819:4:39"
                      }
                    ],
                    "id": 10632,
                    "name": "VariableDeclaration",
                    "src": "819:4:39"
                  }
                ],
                "id": 10633,
                "name": "ParameterList",
                "src": "818:6:39"
              },
              {
                "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": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 10634,
                            "name": "Identifier",
                            "src": "831:7:39"
                          },
                          {
                            "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": 10627,
                                  "type": "address",
                                  "value": "_to"
                                },
                                "id": 10635,
                                "name": "Identifier",
                                "src": "839:3:39"
                              },
                              {
                                "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": 10636,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "846:7:39"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 10637,
                                    "name": "Literal",
                                    "src": "854:1:39"
                                  }
                                ],
                                "id": 10638,
                                "name": "FunctionCall",
                                "src": "846:10:39"
                              }
                            ],
                            "id": 10639,
                            "name": "BinaryOperation",
                            "src": "839:17:39"
                          }
                        ],
                        "id": 10640,
                        "name": "FunctionCall",
                        "src": "831:26:39"
                      }
                    ],
                    "id": 10641,
                    "name": "ExpressionStatement",
                    "src": "831:26:39"
                  },
                  {
                    "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": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 10642,
                            "name": "Identifier",
                            "src": "863:7:39"
                          },
                          {
                            "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": 10629,
                                  "type": "uint256",
                                  "value": "_value"
                                },
                                "id": 10643,
                                "name": "Identifier",
                                "src": "871:6:39"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10314,
                                      "type": "mapping(address => uint256)",
                                      "value": "balances"
                                    },
                                    "id": 10644,
                                    "name": "Identifier",
                                    "src": "881:8:39"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10625,
                                      "type": "address",
                                      "value": "_from"
                                    },
                                    "id": 10645,
                                    "name": "Identifier",
                                    "src": "890:5:39"
                                  }
                                ],
                                "id": 10646,
                                "name": "IndexAccess",
                                "src": "881:15:39"
                              }
                            ],
                            "id": 10647,
                            "name": "BinaryOperation",
                            "src": "871:25:39"
                          }
                        ],
                        "id": 10648,
                        "name": "FunctionCall",
                        "src": "863:34:39"
                      }
                    ],
                    "id": 10649,
                    "name": "ExpressionStatement",
                    "src": "863:34:39"
                  },
                  {
                    "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": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 10650,
                            "name": "Identifier",
                            "src": "903:7:39"
                          },
                          {
                            "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": 10629,
                                  "type": "uint256",
                                  "value": "_value"
                                },
                                "id": 10651,
                                "name": "Identifier",
                                "src": "911:6:39"
                              },
                              {
                                "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": 10623,
                                          "type": "mapping(address => mapping(address => uint256))",
                                          "value": "allowed"
                                        },
                                        "id": 10652,
                                        "name": "Identifier",
                                        "src": "921:7:39"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10625,
                                          "type": "address",
                                          "value": "_from"
                                        },
                                        "id": 10653,
                                        "name": "Identifier",
                                        "src": "929:5:39"
                                      }
                                    ],
                                    "id": 10654,
                                    "name": "IndexAccess",
                                    "src": "921:14:39"
                                  },
                                  {
                                    "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": 10867,
                                          "type": "msg",
                                          "value": "msg"
                                        },
                                        "id": 10655,
                                        "name": "Identifier",
                                        "src": "936:3:39"
                                      }
                                    ],
                                    "id": 10656,
                                    "name": "MemberAccess",
                                    "src": "936:10:39"
                                  }
                                ],
                                "id": 10657,
                                "name": "IndexAccess",
                                "src": "921:26:39"
                              }
                            ],
                            "id": 10658,
                            "name": "BinaryOperation",
                            "src": "911:36:39"
                          }
                        ],
                        "id": 10659,
                        "name": "FunctionCall",
                        "src": "903:45:39"
                      }
                    ],
                    "id": 10660,
                    "name": "ExpressionStatement",
                    "src": "903:45:39"
                  },
                  {
                    "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": 10314,
                                  "type": "mapping(address => uint256)",
                                  "value": "balances"
                                },
                                "id": 10661,
                                "name": "Identifier",
                                "src": "955:8:39"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10625,
                                  "type": "address",
                                  "value": "_from"
                                },
                                "id": 10662,
                                "name": "Identifier",
                                "src": "964:5:39"
                              }
                            ],
                            "id": 10663,
                            "name": "IndexAccess",
                            "src": "955:15:39"
                          },
                          {
                            "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": 10196,
                                  "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": 10314,
                                          "type": "mapping(address => uint256)",
                                          "value": "balances"
                                        },
                                        "id": 10664,
                                        "name": "Identifier",
                                        "src": "973:8:39"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10625,
                                          "type": "address",
                                          "value": "_from"
                                        },
                                        "id": 10665,
                                        "name": "Identifier",
                                        "src": "982:5:39"
                                      }
                                    ],
                                    "id": 10666,
                                    "name": "IndexAccess",
                                    "src": "973:15:39"
                                  }
                                ],
                                "id": 10667,
                                "name": "MemberAccess",
                                "src": "973:19:39"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10629,
                                  "type": "uint256",
                                  "value": "_value"
                                },
                                "id": 10668,
                                "name": "Identifier",
                                "src": "993:6:39"
                              }
                            ],
                            "id": 10669,
                            "name": "FunctionCall",
                            "src": "973:27:39"
                          }
                        ],
                        "id": 10670,
                        "name": "Assignment",
                        "src": "955:45:39"
                      }
                    ],
                    "id": 10671,
                    "name": "ExpressionStatement",
                    "src": "955:45:39"
                  },
                  {
                    "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": 10314,
                                  "type": "mapping(address => uint256)",
                                  "value": "balances"
                                },
                                "id": 10672,
                                "name": "Identifier",
                                "src": "1006:8:39"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10627,
                                  "type": "address",
                                  "value": "_to"
                                },
                                "id": 10673,
                                "name": "Identifier",
                                "src": "1015:3:39"
                              }
                            ],
                            "id": 10674,
                            "name": "IndexAccess",
                            "src": "1006:13:39"
                          },
                          {
                            "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": 10220,
                                  "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": 10314,
                                          "type": "mapping(address => uint256)",
                                          "value": "balances"
                                        },
                                        "id": 10675,
                                        "name": "Identifier",
                                        "src": "1022:8:39"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10627,
                                          "type": "address",
                                          "value": "_to"
                                        },
                                        "id": 10676,
                                        "name": "Identifier",
                                        "src": "1031:3:39"
                                      }
                                    ],
                                    "id": 10677,
                                    "name": "IndexAccess",
                                    "src": "1022:13:39"
                                  }
                                ],
                                "id": 10678,
                                "name": "MemberAccess",
                                "src": "1022:17:39"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10629,
                                  "type": "uint256",
                                  "value": "_value"
                                },
                                "id": 10679,
                                "name": "Identifier",
                                "src": "1040:6:39"
                              }
                            ],
                            "id": 10680,
                            "name": "FunctionCall",
                            "src": "1022:25:39"
                          }
                        ],
                        "id": 10681,
                        "name": "Assignment",
                        "src": "1006:41:39"
                      }
                    ],
                    "id": 10682,
                    "name": "ExpressionStatement",
                    "src": "1006:41:39"
                  },
                  {
                    "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": 10623,
                                      "type": "mapping(address => mapping(address => uint256))",
                                      "value": "allowed"
                                    },
                                    "id": 10683,
                                    "name": "Identifier",
                                    "src": "1053:7:39"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10625,
                                      "type": "address",
                                      "value": "_from"
                                    },
                                    "id": 10684,
                                    "name": "Identifier",
                                    "src": "1061:5:39"
                                  }
                                ],
                                "id": 10687,
                                "name": "IndexAccess",
                                "src": "1053:14:39"
                              },
                              {
                                "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": 10867,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 10685,
                                    "name": "Identifier",
                                    "src": "1068:3:39"
                                  }
                                ],
                                "id": 10686,
                                "name": "MemberAccess",
                                "src": "1068:10:39"
                              }
                            ],
                            "id": 10688,
                            "name": "IndexAccess",
                            "src": "1053:26:39"
                          },
                          {
                            "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": 10196,
                                  "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": 10623,
                                              "type": "mapping(address => mapping(address => uint256))",
                                              "value": "allowed"
                                            },
                                            "id": 10689,
                                            "name": "Identifier",
                                            "src": "1082:7:39"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10625,
                                              "type": "address",
                                              "value": "_from"
                                            },
                                            "id": 10690,
                                            "name": "Identifier",
                                            "src": "1090:5:39"
                                          }
                                        ],
                                        "id": 10691,
                                        "name": "IndexAccess",
                                        "src": "1082:14:39"
                                      },
                                      {
                                        "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": 10867,
                                              "type": "msg",
                                              "value": "msg"
                                            },
                                            "id": 10692,
                                            "name": "Identifier",
                                            "src": "1097:3:39"
                                          }
                                        ],
                                        "id": 10693,
                                        "name": "MemberAccess",
                                        "src": "1097:10:39"
                                      }
                                    ],
                                    "id": 10694,
                                    "name": "IndexAccess",
                                    "src": "1082:26:39"
                                  }
                                ],
                                "id": 10695,
                                "name": "MemberAccess",
                                "src": "1082:30:39"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10629,
                                  "type": "uint256",
                                  "value": "_value"
                                },
                                "id": 10696,
                                "name": "Identifier",
                                "src": "1113:6:39"
                              }
                            ],
                            "id": 10697,
                            "name": "FunctionCall",
                            "src": "1082:38:39"
                          }
                        ],
                        "id": 10698,
                        "name": "Assignment",
                        "src": "1053:67:39"
                      }
                    ],
                    "id": 10699,
                    "name": "ExpressionStatement",
                    "src": "1053:67:39"
                  },
                  {
                    "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": 10513,
                              "type": "function (address,address,uint256)",
                              "value": "Transfer"
                            },
                            "id": 10700,
                            "name": "Identifier",
                            "src": "1126:8:39"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10625,
                              "type": "address",
                              "value": "_from"
                            },
                            "id": 10701,
                            "name": "Identifier",
                            "src": "1135:5:39"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10627,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 10702,
                            "name": "Identifier",
                            "src": "1142:3:39"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10629,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 10703,
                            "name": "Identifier",
                            "src": "1147:6:39"
                          }
                        ],
                        "id": 10704,
                        "name": "FunctionCall",
                        "src": "1126:28:39"
                      }
                    ],
                    "id": 10705,
                    "name": "ExpressionStatement",
                    "src": "1126:28:39"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 10633
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 10706,
                        "name": "Literal",
                        "src": "1167:4:39"
                      }
                    ],
                    "id": 10707,
                    "name": "Return",
                    "src": "1160:11:39"
                  }
                ],
                "id": 10708,
                "name": "Block",
                "src": "825:351:39"
              }
            ],
            "id": 10709,
            "name": "FunctionDefinition",
            "src": "737:439:39"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "approve",
              "payable": false,
              "scope": 10855,
              "stateMutability": "nonpayable",
              "superFunction": 10476,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_spender",
                      "scope": 10737,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10710,
                        "name": "ElementaryTypeName",
                        "src": "1816:7:39"
                      }
                    ],
                    "id": 10711,
                    "name": "VariableDeclaration",
                    "src": "1816:16:39"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_value",
                      "scope": 10737,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 10712,
                        "name": "ElementaryTypeName",
                        "src": "1834:7:39"
                      }
                    ],
                    "id": 10713,
                    "name": "VariableDeclaration",
                    "src": "1834:14:39"
                  }
                ],
                "id": 10714,
                "name": "ParameterList",
                "src": "1815:34:39"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 10737,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 10715,
                        "name": "ElementaryTypeName",
                        "src": "1866:4:39"
                      }
                    ],
                    "id": 10716,
                    "name": "VariableDeclaration",
                    "src": "1866:4:39"
                  }
                ],
                "id": 10717,
                "name": "ParameterList",
                "src": "1865:6:39"
              },
              {
                "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": 10623,
                                      "type": "mapping(address => mapping(address => uint256))",
                                      "value": "allowed"
                                    },
                                    "id": 10718,
                                    "name": "Identifier",
                                    "src": "1878:7:39"
                                  },
                                  {
                                    "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": 10867,
                                          "type": "msg",
                                          "value": "msg"
                                        },
                                        "id": 10719,
                                        "name": "Identifier",
                                        "src": "1886:3:39"
                                      }
                                    ],
                                    "id": 10720,
                                    "name": "MemberAccess",
                                    "src": "1886:10:39"
                                  }
                                ],
                                "id": 10722,
                                "name": "IndexAccess",
                                "src": "1878:19:39"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10711,
                                  "type": "address",
                                  "value": "_spender"
                                },
                                "id": 10721,
                                "name": "Identifier",
                                "src": "1898:8:39"
                              }
                            ],
                            "id": 10723,
                            "name": "IndexAccess",
                            "src": "1878:29:39"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10713,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 10724,
                            "name": "Identifier",
                            "src": "1910:6:39"
                          }
                        ],
                        "id": 10725,
                        "name": "Assignment",
                        "src": "1878:38:39"
                      }
                    ],
                    "id": 10726,
                    "name": "ExpressionStatement",
                    "src": "1878:38:39"
                  },
                  {
                    "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": 10484,
                              "type": "function (address,address,uint256)",
                              "value": "Approval"
                            },
                            "id": 10727,
                            "name": "Identifier",
                            "src": "1922:8:39"
                          },
                          {
                            "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": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 10728,
                                "name": "Identifier",
                                "src": "1931:3:39"
                              }
                            ],
                            "id": 10729,
                            "name": "MemberAccess",
                            "src": "1931:10:39"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10711,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 10730,
                            "name": "Identifier",
                            "src": "1943:8:39"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10713,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 10731,
                            "name": "Identifier",
                            "src": "1953:6:39"
                          }
                        ],
                        "id": 10732,
                        "name": "FunctionCall",
                        "src": "1922:38:39"
                      }
                    ],
                    "id": 10733,
                    "name": "ExpressionStatement",
                    "src": "1922:38:39"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 10717
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 10734,
                        "name": "Literal",
                        "src": "1973:4:39"
                      }
                    ],
                    "id": 10735,
                    "name": "Return",
                    "src": "1966:11:39"
                  }
                ],
                "id": 10736,
                "name": "Block",
                "src": "1872:110:39"
              }
            ],
            "id": 10737,
            "name": "FunctionDefinition",
            "src": "1799:183:39"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "allowance",
              "payable": false,
              "scope": 10855,
              "stateMutability": "view",
              "superFunction": 10456,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_owner",
                      "scope": 10753,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10738,
                        "name": "ElementaryTypeName",
                        "src": "2320:7:39"
                      }
                    ],
                    "id": 10739,
                    "name": "VariableDeclaration",
                    "src": "2320:14:39"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_spender",
                      "scope": 10753,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10740,
                        "name": "ElementaryTypeName",
                        "src": "2336:7:39"
                      }
                    ],
                    "id": 10741,
                    "name": "VariableDeclaration",
                    "src": "2336:16:39"
                  }
                ],
                "id": 10742,
                "name": "ParameterList",
                "src": "2319:34:39"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 10753,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 10743,
                        "name": "ElementaryTypeName",
                        "src": "2375:7:39"
                      }
                    ],
                    "id": 10744,
                    "name": "VariableDeclaration",
                    "src": "2375:7:39"
                  }
                ],
                "id": 10745,
                "name": "ParameterList",
                "src": "2374:9:39"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 10745
                    },
                    "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": 10623,
                                  "type": "mapping(address => mapping(address => uint256))",
                                  "value": "allowed"
                                },
                                "id": 10746,
                                "name": "Identifier",
                                "src": "2397:7:39"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10739,
                                  "type": "address",
                                  "value": "_owner"
                                },
                                "id": 10747,
                                "name": "Identifier",
                                "src": "2405:6:39"
                              }
                            ],
                            "id": 10748,
                            "name": "IndexAccess",
                            "src": "2397:15:39"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10741,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 10749,
                            "name": "Identifier",
                            "src": "2413:8:39"
                          }
                        ],
                        "id": 10750,
                        "name": "IndexAccess",
                        "src": "2397:25:39"
                      }
                    ],
                    "id": 10751,
                    "name": "Return",
                    "src": "2390:32:39"
                  }
                ],
                "id": 10752,
                "name": "Block",
                "src": "2384:43:39"
              }
            ],
            "id": 10753,
            "name": "FunctionDefinition",
            "src": "2301:126:39"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "increaseApproval",
              "payable": false,
              "scope": 10855,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_spender",
                      "scope": 10794,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10754,
                        "name": "ElementaryTypeName",
                        "src": "2910:7:39"
                      }
                    ],
                    "id": 10755,
                    "name": "VariableDeclaration",
                    "src": "2910:16:39"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_addedValue",
                      "scope": 10794,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10756,
                        "name": "ElementaryTypeName",
                        "src": "2928:4:39"
                      }
                    ],
                    "id": 10757,
                    "name": "VariableDeclaration",
                    "src": "2928:16:39"
                  }
                ],
                "id": 10758,
                "name": "ParameterList",
                "src": "2909:36:39"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 10794,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 10759,
                        "name": "ElementaryTypeName",
                        "src": "2962:4:39"
                      }
                    ],
                    "id": 10760,
                    "name": "VariableDeclaration",
                    "src": "2962:4:39"
                  }
                ],
                "id": 10761,
                "name": "ParameterList",
                "src": "2961:6:39"
              },
              {
                "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": 10623,
                                      "type": "mapping(address => mapping(address => uint256))",
                                      "value": "allowed"
                                    },
                                    "id": 10762,
                                    "name": "Identifier",
                                    "src": "2974:7:39"
                                  },
                                  {
                                    "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": 10867,
                                          "type": "msg",
                                          "value": "msg"
                                        },
                                        "id": 10763,
                                        "name": "Identifier",
                                        "src": "2982:3:39"
                                      }
                                    ],
                                    "id": 10764,
                                    "name": "MemberAccess",
                                    "src": "2982:10:39"
                                  }
                                ],
                                "id": 10766,
                                "name": "IndexAccess",
                                "src": "2974:19:39"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10755,
                                  "type": "address",
                                  "value": "_spender"
                                },
                                "id": 10765,
                                "name": "Identifier",
                                "src": "2994:8:39"
                              }
                            ],
                            "id": 10767,
                            "name": "IndexAccess",
                            "src": "2974:29:39"
                          },
                          {
                            "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": 10220,
                                  "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": 10623,
                                              "type": "mapping(address => mapping(address => uint256))",
                                              "value": "allowed"
                                            },
                                            "id": 10768,
                                            "name": "Identifier",
                                            "src": "3006:7:39"
                                          },
                                          {
                                            "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": 10867,
                                                  "type": "msg",
                                                  "value": "msg"
                                                },
                                                "id": 10769,
                                                "name": "Identifier",
                                                "src": "3014:3:39"
                                              }
                                            ],
                                            "id": 10770,
                                            "name": "MemberAccess",
                                            "src": "3014:10:39"
                                          }
                                        ],
                                        "id": 10771,
                                        "name": "IndexAccess",
                                        "src": "3006:19:39"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10755,
                                          "type": "address",
                                          "value": "_spender"
                                        },
                                        "id": 10772,
                                        "name": "Identifier",
                                        "src": "3026:8:39"
                                      }
                                    ],
                                    "id": 10773,
                                    "name": "IndexAccess",
                                    "src": "3006:29:39"
                                  }
                                ],
                                "id": 10774,
                                "name": "MemberAccess",
                                "src": "3006:33:39"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10757,
                                  "type": "uint256",
                                  "value": "_addedValue"
                                },
                                "id": 10775,
                                "name": "Identifier",
                                "src": "3040:11:39"
                              }
                            ],
                            "id": 10776,
                            "name": "FunctionCall",
                            "src": "3006:46:39"
                          }
                        ],
                        "id": 10777,
                        "name": "Assignment",
                        "src": "2974:78:39"
                      }
                    ],
                    "id": 10778,
                    "name": "ExpressionStatement",
                    "src": "2974:78:39"
                  },
                  {
                    "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": 10484,
                              "type": "function (address,address,uint256)",
                              "value": "Approval"
                            },
                            "id": 10779,
                            "name": "Identifier",
                            "src": "3058:8:39"
                          },
                          {
                            "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": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 10780,
                                "name": "Identifier",
                                "src": "3067:3:39"
                              }
                            ],
                            "id": 10781,
                            "name": "MemberAccess",
                            "src": "3067:10:39"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10755,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 10782,
                            "name": "Identifier",
                            "src": "3079:8:39"
                          },
                          {
                            "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": 10623,
                                      "type": "mapping(address => mapping(address => uint256))",
                                      "value": "allowed"
                                    },
                                    "id": 10783,
                                    "name": "Identifier",
                                    "src": "3089:7:39"
                                  },
                                  {
                                    "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": 10867,
                                          "type": "msg",
                                          "value": "msg"
                                        },
                                        "id": 10784,
                                        "name": "Identifier",
                                        "src": "3097:3:39"
                                      }
                                    ],
                                    "id": 10785,
                                    "name": "MemberAccess",
                                    "src": "3097:10:39"
                                  }
                                ],
                                "id": 10786,
                                "name": "IndexAccess",
                                "src": "3089:19:39"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10755,
                                  "type": "address",
                                  "value": "_spender"
                                },
                                "id": 10787,
                                "name": "Identifier",
                                "src": "3109:8:39"
                              }
                            ],
                            "id": 10788,
                            "name": "IndexAccess",
                            "src": "3089:29:39"
                          }
                        ],
                        "id": 10789,
                        "name": "FunctionCall",
                        "src": "3058:61:39"
                      }
                    ],
                    "id": 10790,
                    "name": "ExpressionStatement",
                    "src": "3058:61:39"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 10761
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 10791,
                        "name": "Literal",
                        "src": "3132:4:39"
                      }
                    ],
                    "id": 10792,
                    "name": "Return",
                    "src": "3125:11:39"
                  }
                ],
                "id": 10793,
                "name": "Block",
                "src": "2968:173:39"
              }
            ],
            "id": 10794,
            "name": "FunctionDefinition",
            "src": "2884:257:39"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "decreaseApproval",
              "payable": false,
              "scope": 10855,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_spender",
                      "scope": 10854,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10795,
                        "name": "ElementaryTypeName",
                        "src": "3629:7:39"
                      }
                    ],
                    "id": 10796,
                    "name": "VariableDeclaration",
                    "src": "3629:16:39"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_subtractedValue",
                      "scope": 10854,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10797,
                        "name": "ElementaryTypeName",
                        "src": "3647:4:39"
                      }
                    ],
                    "id": 10798,
                    "name": "VariableDeclaration",
                    "src": "3647:21:39"
                  }
                ],
                "id": 10799,
                "name": "ParameterList",
                "src": "3628:41:39"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 10854,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 10800,
                        "name": "ElementaryTypeName",
                        "src": "3686:4:39"
                      }
                    ],
                    "id": 10801,
                    "name": "VariableDeclaration",
                    "src": "3686:4:39"
                  }
                ],
                "id": 10802,
                "name": "ParameterList",
                "src": "3685:6:39"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        10804
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "oldValue",
                          "scope": 10854,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 10803,
                            "name": "ElementaryTypeName",
                            "src": "3698:4:39"
                          }
                        ],
                        "id": 10804,
                        "name": "VariableDeclaration",
                        "src": "3698:13:39"
                      },
                      {
                        "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": 10623,
                                  "type": "mapping(address => mapping(address => uint256))",
                                  "value": "allowed"
                                },
                                "id": 10805,
                                "name": "Identifier",
                                "src": "3714:7:39"
                              },
                              {
                                "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": 10867,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 10806,
                                    "name": "Identifier",
                                    "src": "3722:3:39"
                                  }
                                ],
                                "id": 10807,
                                "name": "MemberAccess",
                                "src": "3722:10:39"
                              }
                            ],
                            "id": 10808,
                            "name": "IndexAccess",
                            "src": "3714:19:39"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10796,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 10809,
                            "name": "Identifier",
                            "src": "3734:8:39"
                          }
                        ],
                        "id": 10810,
                        "name": "IndexAccess",
                        "src": "3714:29:39"
                      }
                    ],
                    "id": 10811,
                    "name": "VariableDeclarationStatement",
                    "src": "3698:45:39"
                  },
                  {
                    "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": 10798,
                              "type": "uint256",
                              "value": "_subtractedValue"
                            },
                            "id": 10812,
                            "name": "Identifier",
                            "src": "3753:16:39"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10804,
                              "type": "uint256",
                              "value": "oldValue"
                            },
                            "id": 10813,
                            "name": "Identifier",
                            "src": "3772:8:39"
                          }
                        ],
                        "id": 10814,
                        "name": "BinaryOperation",
                        "src": "3753:27:39"
                      },
                      {
                        "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": 10623,
                                              "type": "mapping(address => mapping(address => uint256))",
                                              "value": "allowed"
                                            },
                                            "id": 10815,
                                            "name": "Identifier",
                                            "src": "3790:7:39"
                                          },
                                          {
                                            "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": 10867,
                                                  "type": "msg",
                                                  "value": "msg"
                                                },
                                                "id": 10816,
                                                "name": "Identifier",
                                                "src": "3798:3:39"
                                              }
                                            ],
                                            "id": 10817,
                                            "name": "MemberAccess",
                                            "src": "3798:10:39"
                                          }
                                        ],
                                        "id": 10819,
                                        "name": "IndexAccess",
                                        "src": "3790:19:39"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10796,
                                          "type": "address",
                                          "value": "_spender"
                                        },
                                        "id": 10818,
                                        "name": "Identifier",
                                        "src": "3810:8:39"
                                      }
                                    ],
                                    "id": 10820,
                                    "name": "IndexAccess",
                                    "src": "3790:29:39"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 10821,
                                    "name": "Literal",
                                    "src": "3822:1:39"
                                  }
                                ],
                                "id": 10822,
                                "name": "Assignment",
                                "src": "3790:33:39"
                              }
                            ],
                            "id": 10823,
                            "name": "ExpressionStatement",
                            "src": "3790:33:39"
                          }
                        ],
                        "id": 10824,
                        "name": "Block",
                        "src": "3782:48:39"
                      },
                      {
                        "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": 10623,
                                              "type": "mapping(address => mapping(address => uint256))",
                                              "value": "allowed"
                                            },
                                            "id": 10825,
                                            "name": "Identifier",
                                            "src": "3844:7:39"
                                          },
                                          {
                                            "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": 10867,
                                                  "type": "msg",
                                                  "value": "msg"
                                                },
                                                "id": 10826,
                                                "name": "Identifier",
                                                "src": "3852:3:39"
                                              }
                                            ],
                                            "id": 10827,
                                            "name": "MemberAccess",
                                            "src": "3852:10:39"
                                          }
                                        ],
                                        "id": 10829,
                                        "name": "IndexAccess",
                                        "src": "3844:19:39"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10796,
                                          "type": "address",
                                          "value": "_spender"
                                        },
                                        "id": 10828,
                                        "name": "Identifier",
                                        "src": "3864:8:39"
                                      }
                                    ],
                                    "id": 10830,
                                    "name": "IndexAccess",
                                    "src": "3844:29:39"
                                  },
                                  {
                                    "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": 10196,
                                          "type": "function (uint256,uint256) pure returns (uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10804,
                                              "type": "uint256",
                                              "value": "oldValue"
                                            },
                                            "id": 10831,
                                            "name": "Identifier",
                                            "src": "3876:8:39"
                                          }
                                        ],
                                        "id": 10832,
                                        "name": "MemberAccess",
                                        "src": "3876:12:39"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10798,
                                          "type": "uint256",
                                          "value": "_subtractedValue"
                                        },
                                        "id": 10833,
                                        "name": "Identifier",
                                        "src": "3889:16:39"
                                      }
                                    ],
                                    "id": 10834,
                                    "name": "FunctionCall",
                                    "src": "3876:30:39"
                                  }
                                ],
                                "id": 10835,
                                "name": "Assignment",
                                "src": "3844:62:39"
                              }
                            ],
                            "id": 10836,
                            "name": "ExpressionStatement",
                            "src": "3844:62:39"
                          }
                        ],
                        "id": 10837,
                        "name": "Block",
                        "src": "3836:77:39"
                      }
                    ],
                    "id": 10838,
                    "name": "IfStatement",
                    "src": "3749:164:39"
                  },
                  {
                    "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": 10484,
                              "type": "function (address,address,uint256)",
                              "value": "Approval"
                            },
                            "id": 10839,
                            "name": "Identifier",
                            "src": "3918:8:39"
                          },
                          {
                            "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": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 10840,
                                "name": "Identifier",
                                "src": "3927:3:39"
                              }
                            ],
                            "id": 10841,
                            "name": "MemberAccess",
                            "src": "3927:10:39"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10796,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 10842,
                            "name": "Identifier",
                            "src": "3939:8:39"
                          },
                          {
                            "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": 10623,
                                      "type": "mapping(address => mapping(address => uint256))",
                                      "value": "allowed"
                                    },
                                    "id": 10843,
                                    "name": "Identifier",
                                    "src": "3949:7:39"
                                  },
                                  {
                                    "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": 10867,
                                          "type": "msg",
                                          "value": "msg"
                                        },
                                        "id": 10844,
                                        "name": "Identifier",
                                        "src": "3957:3:39"
                                      }
                                    ],
                                    "id": 10845,
                                    "name": "MemberAccess",
                                    "src": "3957:10:39"
                                  }
                                ],
                                "id": 10846,
                                "name": "IndexAccess",
                                "src": "3949:19:39"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10796,
                                  "type": "address",
                                  "value": "_spender"
                                },
                                "id": 10847,
                                "name": "Identifier",
                                "src": "3969:8:39"
                              }
                            ],
                            "id": 10848,
                            "name": "IndexAccess",
                            "src": "3949:29:39"
                          }
                        ],
                        "id": 10849,
                        "name": "FunctionCall",
                        "src": "3918:61:39"
                      }
                    ],
                    "id": 10850,
                    "name": "ExpressionStatement",
                    "src": "3918:61:39"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 10802
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 10851,
                        "name": "Literal",
                        "src": "3992:4:39"
                      }
                    ],
                    "id": 10852,
                    "name": "Return",
                    "src": "3985:11:39"
                  }
                ],
                "id": 10853,
                "name": "Block",
                "src": "3692:309:39"
              }
            ],
            "id": 10854,
            "name": "FunctionDefinition",
            "src": "3603:398:39"
          }
        ],
        "id": 10855,
        "name": "ContractDefinition",
        "src": "345:3659:39"
      }
    ],
    "id": 10856,
    "name": "SourceUnit",
    "src": "0:4005:39"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-01-25T13:14:57.932Z"
}