{
  "contractName": "Reputation",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "setReputation",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "reputationOf",
      "outputs": [
        {
          "name": "balance",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_amount",
          "type": "int256"
        }
      ],
      "name": "mint",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount",
          "type": "int256"
        }
      ],
      "name": "Mint",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    }
  ],
  "bytecode": "0x60606040526012600355341561001457600080fd5b60008054600160a060020a033316600160a060020a0319909116811782558152600160205260408120819055600255610459806100526000396000f3006060604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166318160ddd8114610087578063313ce567146100ac5780638da5cb5b146100bf578063b120c16a146100ee578063db89c04414610124578063f2fde38b14610143578063fd9bf3aa14610164575b600080fd5b341561009257600080fd5b61009a610186565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a61018c565b34156100ca57600080fd5b6100d2610192565b604051600160a060020a03909116815260200160405180910390f35b34156100f957600080fd5b610110600160a060020a03600435166024356101a1565b604051901515815260200160405180910390f35b341561012f57600080fd5b61009a600160a060020a0360043516610222565b341561014e57600080fd5b610162600160a060020a036004351661023d565b005b341561016f57600080fd5b610110600160a060020a03600435166024356102d8565b60025481565b60035481565b600054600160a060020a031681565b6000805433600160a060020a039081169116146101bd57600080fd5b600160a060020a0383166000908152600160205260409020546002546101fa9184916101ee9163ffffffff61040516565b9063ffffffff61041716565b60025550600160a060020a038216600090815260016020819052604090912082905592915050565b600160a060020a031660009081526001602052604090205490565b60005433600160a060020a0390811691161461025857600080fd5b600160a060020a038116151561026d57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008054819033600160a060020a039081169116146102f657600080fd5b6000831261035e57506002548290610314908263ffffffff61041716565b600255600160a060020a038416600090815260016020526040902054610340908263ffffffff61041716565b600160a060020a0385166000908152600160205260409020556103be565b50600254600019830290610378908263ffffffff61040516565b600255600160a060020a0384166000908152600160205260409020546103a4908263ffffffff61040516565b600160a060020a0385166000908152600160205260409020555b83600160a060020a03167f6f734b566c5e1cb976d9c7fba184b96a698a18931dd345168b16db217f8df0dd8460405190815260200160405180910390a25060019392505050565b60008282111561041157fe5b50900390565b60008282018381101561042657fe5b93925050505600a165627a7a7230582016ca3208cbc53fe3d5bcbc4209bc65de4c64b12637a56f22a3ea5814be37a85c0029",
  "deployedBytecode": "0x6060604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166318160ddd8114610087578063313ce567146100ac5780638da5cb5b146100bf578063b120c16a146100ee578063db89c04414610124578063f2fde38b14610143578063fd9bf3aa14610164575b600080fd5b341561009257600080fd5b61009a610186565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a61018c565b34156100ca57600080fd5b6100d2610192565b604051600160a060020a03909116815260200160405180910390f35b34156100f957600080fd5b610110600160a060020a03600435166024356101a1565b604051901515815260200160405180910390f35b341561012f57600080fd5b61009a600160a060020a0360043516610222565b341561014e57600080fd5b610162600160a060020a036004351661023d565b005b341561016f57600080fd5b610110600160a060020a03600435166024356102d8565b60025481565b60035481565b600054600160a060020a031681565b6000805433600160a060020a039081169116146101bd57600080fd5b600160a060020a0383166000908152600160205260409020546002546101fa9184916101ee9163ffffffff61040516565b9063ffffffff61041716565b60025550600160a060020a038216600090815260016020819052604090912082905592915050565b600160a060020a031660009081526001602052604090205490565b60005433600160a060020a0390811691161461025857600080fd5b600160a060020a038116151561026d57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008054819033600160a060020a039081169116146102f657600080fd5b6000831261035e57506002548290610314908263ffffffff61041716565b600255600160a060020a038416600090815260016020526040902054610340908263ffffffff61041716565b600160a060020a0385166000908152600160205260409020556103be565b50600254600019830290610378908263ffffffff61040516565b600255600160a060020a0384166000908152600160205260409020546103a4908263ffffffff61040516565b600160a060020a0385166000908152600160205260409020555b83600160a060020a03167f6f734b566c5e1cb976d9c7fba184b96a698a18931dd345168b16db217f8df0dd8460405190815260200160405180910390a25060019392505050565b60008282111561041157fe5b50900390565b60008282018381101561042657fe5b93925050505600a165627a7a7230582016ca3208cbc53fe3d5bcbc4209bc65de4c64b12637a56f22a3ea5814be37a85c0029",
  "sourceMap": "308:2215:9:-;;;473:2;450:25;;627:95;;;;;;;;501:5:33;:18;;-1:-1:-1;;;;;509:10:33;501:18;-1:-1:-1;;;;;;501:18:33;;;;;;;666:20:9;;501:18:33;666:20:9;;;;;:24;;;700:11;:15;308:2215;;;;;;",
  "deployedSourceMap": "308:2215:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;418:26;;;;;;;;;;;;;;;;;;;;;;;;;;;450:25;;;;;;;;;;;;238:20:33;;;;;;;;;;;;;;;-1:-1:-1;;;;;238:20:33;;;;;;;;;;;;;;;2261:260:9;;;;;;;;;;;;-1:-1:-1;;;;;2261:260:9;;;;;;;;;;;;;;;;;;;;;;880:120;;;;;;;;;;;;-1:-1:-1;;;;;880:120:9;;;834:169:33;;;;;;;;;;;;-1:-1:-1;;;;;834:169:33;;;;;1349:631:9;;;;;;;;;;;;-1:-1:-1;;;;;1349:631:9;;;;;418:26;;;;:::o;450:25::-;;;;:::o;238:20:33:-;;;-1:-1:-1;;;;;238:20:33;;:::o;2261:260:9:-;2340:4;654:5:33;;640:10;-1:-1:-1;;;;;640:19:33;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;2432:13:9;;;;;;-1:-1:-1;2432:13:9;;;;;;-1:-1:-1;2416:11:9;2415:45;;2452:7;;2416:30;;:15;:30::i;:::-;2415:36;:45;:36;:45;:::i;:::-;2401:11;:59;-1:-1:-1;;;;;;2470:13:9;;;;;;;;-1:-1:-1;2470:13:9;;;;;;;;:23;;;;-1:-1:-1;2261:260:9:o;880:120::-;-1:-1:-1;;;;;977:16:9;943:15;977:16;;;-1:-1:-1;977:16:9;;;;;;;880:120::o;834:169:33:-;654:5;;640:10;-1:-1:-1;;;;;640:19:33;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;910:22:33;;;;902:31;;;;;;960:5;;-1:-1:-1;;;;;939:37:33;;;;960:5;939:37;;;;;;;;;;982:5;:16;;-1:-1:-1;;982:16:33;-1:-1:-1;;;;;982:16:33;;;;;;;;;;834:169::o;1349:631:9:-;1418:4;654:5:33;;1418:4:9;;640:10:33;-1:-1:-1;;;;;640:19:33;;;654:5;;640:19;632:28;;;;;;1586:1:9;1575:12;;1570:355;;-1:-1:-1;1657:11:9;;1621:7;;1657:26;;1621:7;1657:26;:15;:26;:::i;:::-;1643:11;:40;-1:-1:-1;;;;;1713:13:9;;;;;;-1:-1:-1;1713:13:9;;;;;;:28;;1731:9;1713:17;:28::i;:::-;-1:-1:-1;;;;;1697:13:9;;;;;;-1:-1:-1;1697:13:9;;;;;:44;1570:355;;;-1:-1:-1;1830:11:9;;-1:-1:-1;;1789:12:9;;;1830:26;;1789:12;1830:15;:26::i;:::-;1816:11;:40;-1:-1:-1;;;;;1886:13:9;;;;;;-1:-1:-1;1886:13:9;;;;;;:28;;1904:9;1886:17;:28::i;:::-;-1:-1:-1;;;;;1870:13:9;;;;;;-1:-1:-1;1870:13:9;;;;;:44;1570:355;-1:-1:-1;;;;;1934:18:9;;;1944:7;1934:18;;;;;;;;;;;;;;-1:-1:-1;1969:4:9;;1349:631;-1:-1:-1;;;1349:631:9: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\nimport \"zeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"zeppelin-solidity/contracts/math/SafeMath.sol\";\n\n\n/**\n * @title Simple static reputation storage\n * @dev The reputation is represented by the owner of the contract\n * which is usually the controller's address\n */\n\ncontract Reputation is Ownable {\n    using SafeMath for uint;\n\n    mapping (address => uint256) balances;\n    uint256 public totalSupply;\n    uint public decimals = 18;\n\n    event Mint(address indexed to, int256 amount);\n\n    /**\n    * @dev the constructor initiate a reputation system with no supply at all\n    */\n    function Reputation() public {\n        balances[msg.sender] = 0;\n        totalSupply = 0;\n    }\n\n    /**\n    * @dev return the reputation amount of a given owner\n    * @param _owner an address of the owner which we want to get his reputation\n    */\n    function reputationOf(address _owner) public constant returns (uint256 balance) {\n        return balances[_owner];\n    }\n\n    /**\n    * @dev adding/reducing reputation of a given address, updating the total supply,\n    * and triggering an event of the operation\n    * @param _to the address which we gives/takes reputation amount\n    * @param _amount the reputation amount to be added/reduced\n    * @return bool which represents a successful of the function\n    */\n    function mint(address _to, int256 _amount) public onlyOwner returns (bool) {\n        // create new tokens and add them to the given account\n        uint absAmount; // allow to reduce reputation also for non owner\n        if ( _amount >= 0 ) {\n            absAmount = uint(_amount);\n            totalSupply = totalSupply.add(absAmount);\n            balances[_to] = balances[_to].add(absAmount);\n        } else {\n            absAmount = uint((-1)*_amount);\n            totalSupply = totalSupply.sub(absAmount);\n            balances[_to] = balances[_to].sub(absAmount);\n        }\n        Mint(_to, _amount);\n        return true;\n    }\n\n    /**\n    * @dev setting reputation amount for a given address, updating the total supply as well\n    * @param _to the address which we set it's reputation amount\n    * @param _amount the new reputation amount to be set\n    * @return bool which represents a success\n    */\n    function setReputation(address _to, uint256 _amount) public onlyOwner returns (bool) {\n        // set the balance of _to to _amount\n        totalSupply = (totalSupply.sub(balances[_to])).add(_amount);\n        balances[_to] = _amount;\n        return true;\n    }\n}\n",
  "sourcePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/Reputation.sol",
  "ast": {
    "attributes": {
      "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/Reputation.sol",
      "exportedSymbols": {
        "Reputation": [
          4564
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 4401,
        "name": "PragmaDirective",
        "src": "0:24:9"
      },
      {
        "attributes": {
          "SourceUnit": 10336,
          "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol",
          "file": "zeppelin-solidity/contracts/ownership/Ownable.sol",
          "scope": 4565,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 4402,
        "name": "ImportDirective",
        "src": "26:59:9"
      },
      {
        "attributes": {
          "SourceUnit": 10256,
          "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol",
          "file": "zeppelin-solidity/contracts/math/SafeMath.sol",
          "scope": 4565,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 4403,
        "name": "ImportDirective",
        "src": "86:55:9"
      },
      {
        "attributes": {
          "contractDependencies": [
            10335
          ],
          "contractKind": "contract",
          "documentation": "@title Simple static reputation storage\n@dev The reputation is represented by the owner of the contract\nwhich is usually the controller's address",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            4564,
            10335
          ],
          "name": "Reputation",
          "scope": 4565
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "Ownable",
                  "referencedDeclaration": 10335,
                  "type": "contract Ownable"
                },
                "id": 4404,
                "name": "UserDefinedTypeName",
                "src": "331:7:9"
              }
            ],
            "id": 4405,
            "name": "InheritanceSpecifier",
            "src": "331:7:9"
          },
          {
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "SafeMath",
                  "referencedDeclaration": 10255,
                  "type": "library SafeMath"
                },
                "id": 4406,
                "name": "UserDefinedTypeName",
                "src": "351:8:9"
              },
              {
                "attributes": {
                  "name": "uint",
                  "type": "uint256"
                },
                "id": 4407,
                "name": "ElementaryTypeName",
                "src": "364:4:9"
              }
            ],
            "id": 4408,
            "name": "UsingForDirective",
            "src": "345:24:9"
          },
          {
            "attributes": {
              "constant": false,
              "name": "balances",
              "scope": 4564,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(address => uint256)",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(address => uint256)"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 4409,
                    "name": "ElementaryTypeName",
                    "src": "384:7:9"
                  },
                  {
                    "attributes": {
                      "name": "uint256",
                      "type": "uint256"
                    },
                    "id": 4410,
                    "name": "ElementaryTypeName",
                    "src": "395:7:9"
                  }
                ],
                "id": 4411,
                "name": "Mapping",
                "src": "375:28:9"
              }
            ],
            "id": 4412,
            "name": "VariableDeclaration",
            "src": "375:37:9"
          },
          {
            "attributes": {
              "constant": false,
              "name": "totalSupply",
              "scope": 4564,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint256",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint256",
                  "type": "uint256"
                },
                "id": 4413,
                "name": "ElementaryTypeName",
                "src": "418:7:9"
              }
            ],
            "id": 4414,
            "name": "VariableDeclaration",
            "src": "418:26:9"
          },
          {
            "attributes": {
              "constant": false,
              "name": "decimals",
              "scope": 4564,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint256",
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint",
                  "type": "uint256"
                },
                "id": 4415,
                "name": "ElementaryTypeName",
                "src": "450:4:9"
              },
              {
                "attributes": {
                  "argumentTypes": null,
                  "hexvalue": "3138",
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "subdenomination": null,
                  "token": "number",
                  "type": "int_const 18",
                  "value": "18"
                },
                "id": 4416,
                "name": "Literal",
                "src": "473:2:9"
              }
            ],
            "id": 4417,
            "name": "VariableDeclaration",
            "src": "450:25:9"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "Mint"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "to",
                      "scope": 4423,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4418,
                        "name": "ElementaryTypeName",
                        "src": "493:7:9"
                      }
                    ],
                    "id": 4419,
                    "name": "VariableDeclaration",
                    "src": "493:18:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "amount",
                      "scope": 4423,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int256",
                          "type": "int256"
                        },
                        "id": 4420,
                        "name": "ElementaryTypeName",
                        "src": "513:6:9"
                      }
                    ],
                    "id": 4421,
                    "name": "VariableDeclaration",
                    "src": "513:13:9"
                  }
                ],
                "id": 4422,
                "name": "ParameterList",
                "src": "492:35:9"
              }
            ],
            "id": 4423,
            "name": "EventDefinition",
            "src": "482:46:9"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": true,
              "modifiers": [
                null
              ],
              "name": "Reputation",
              "payable": false,
              "scope": 4564,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 4424,
                "name": "ParameterList",
                "src": "646:2:9"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 4425,
                "name": "ParameterList",
                "src": "656:0:9"
              },
              {
                "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,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4412,
                                  "type": "mapping(address => uint256)",
                                  "value": "balances"
                                },
                                "id": 4426,
                                "name": "Identifier",
                                "src": "666:8:9"
                              },
                              {
                                "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": 10901,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 4427,
                                    "name": "Identifier",
                                    "src": "675:3:9"
                                  }
                                ],
                                "id": 4428,
                                "name": "MemberAccess",
                                "src": "675:10:9"
                              }
                            ],
                            "id": 4429,
                            "name": "IndexAccess",
                            "src": "666:20:9"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 4430,
                            "name": "Literal",
                            "src": "689:1:9"
                          }
                        ],
                        "id": 4431,
                        "name": "Assignment",
                        "src": "666:24:9"
                      }
                    ],
                    "id": 4432,
                    "name": "ExpressionStatement",
                    "src": "666:24:9"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4414,
                              "type": "uint256",
                              "value": "totalSupply"
                            },
                            "id": 4433,
                            "name": "Identifier",
                            "src": "700:11:9"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 4434,
                            "name": "Literal",
                            "src": "714:1:9"
                          }
                        ],
                        "id": 4435,
                        "name": "Assignment",
                        "src": "700:15:9"
                      }
                    ],
                    "id": 4436,
                    "name": "ExpressionStatement",
                    "src": "700:15:9"
                  }
                ],
                "id": 4437,
                "name": "Block",
                "src": "656:66:9"
              }
            ],
            "id": 4438,
            "name": "FunctionDefinition",
            "src": "627:95:9"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "reputationOf",
              "payable": false,
              "scope": 4564,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_owner",
                      "scope": 4450,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4439,
                        "name": "ElementaryTypeName",
                        "src": "902:7:9"
                      }
                    ],
                    "id": 4440,
                    "name": "VariableDeclaration",
                    "src": "902:14:9"
                  }
                ],
                "id": 4441,
                "name": "ParameterList",
                "src": "901:16:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "balance",
                      "scope": 4450,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 4442,
                        "name": "ElementaryTypeName",
                        "src": "943:7:9"
                      }
                    ],
                    "id": 4443,
                    "name": "VariableDeclaration",
                    "src": "943:15:9"
                  }
                ],
                "id": 4444,
                "name": "ParameterList",
                "src": "942:17:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 4444
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4412,
                              "type": "mapping(address => uint256)",
                              "value": "balances"
                            },
                            "id": 4445,
                            "name": "Identifier",
                            "src": "977:8:9"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4440,
                              "type": "address",
                              "value": "_owner"
                            },
                            "id": 4446,
                            "name": "Identifier",
                            "src": "986:6:9"
                          }
                        ],
                        "id": 4447,
                        "name": "IndexAccess",
                        "src": "977:16:9"
                      }
                    ],
                    "id": 4448,
                    "name": "Return",
                    "src": "970:23:9"
                  }
                ],
                "id": 4449,
                "name": "Block",
                "src": "960:40:9"
              }
            ],
            "id": 4450,
            "name": "FunctionDefinition",
            "src": "880:120:9"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "mint",
              "payable": false,
              "scope": 4564,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_to",
                      "scope": 4530,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4451,
                        "name": "ElementaryTypeName",
                        "src": "1363:7:9"
                      }
                    ],
                    "id": 4452,
                    "name": "VariableDeclaration",
                    "src": "1363:11:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_amount",
                      "scope": 4530,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int256",
                          "type": "int256"
                        },
                        "id": 4453,
                        "name": "ElementaryTypeName",
                        "src": "1376:6:9"
                      }
                    ],
                    "id": 4454,
                    "name": "VariableDeclaration",
                    "src": "1376:14:9"
                  }
                ],
                "id": 4455,
                "name": "ParameterList",
                "src": "1362:29:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 4530,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 4458,
                        "name": "ElementaryTypeName",
                        "src": "1418:4:9"
                      }
                    ],
                    "id": 4459,
                    "name": "VariableDeclaration",
                    "src": "1418:4:9"
                  }
                ],
                "id": 4460,
                "name": "ParameterList",
                "src": "1417:6:9"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10309,
                      "type": "modifier ()",
                      "value": "onlyOwner"
                    },
                    "id": 4456,
                    "name": "Identifier",
                    "src": "1399:9:9"
                  }
                ],
                "id": 4457,
                "name": "ModifierInvocation",
                "src": "1399:9:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        null
                      ],
                      "initialValue": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "absAmount",
                          "scope": 4530,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 4461,
                            "name": "ElementaryTypeName",
                            "src": "1497:4:9"
                          }
                        ],
                        "id": 4462,
                        "name": "VariableDeclaration",
                        "src": "1497:14:9"
                      }
                    ],
                    "id": 4463,
                    "name": "VariableDeclarationStatement",
                    "src": "1497:14:9"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4454,
                              "type": "int256",
                              "value": "_amount"
                            },
                            "id": 4464,
                            "name": "Identifier",
                            "src": "1575:7:9"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 4465,
                            "name": "Literal",
                            "src": "1586:1:9"
                          }
                        ],
                        "id": 4466,
                        "name": "BinaryOperation",
                        "src": "1575:12:9"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4462,
                                      "type": "uint256",
                                      "value": "absAmount"
                                    },
                                    "id": 4467,
                                    "name": "Identifier",
                                    "src": "1604:9:9"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "uint256",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_int256",
                                              "typeString": "int256"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(uint256)",
                                          "value": "uint"
                                        },
                                        "id": 4468,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "1616:4:9"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4454,
                                          "type": "int256",
                                          "value": "_amount"
                                        },
                                        "id": 4469,
                                        "name": "Identifier",
                                        "src": "1621:7:9"
                                      }
                                    ],
                                    "id": 4470,
                                    "name": "FunctionCall",
                                    "src": "1616:13:9"
                                  }
                                ],
                                "id": 4471,
                                "name": "Assignment",
                                "src": "1604:25:9"
                              }
                            ],
                            "id": 4472,
                            "name": "ExpressionStatement",
                            "src": "1604:25:9"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4414,
                                      "type": "uint256",
                                      "value": "totalSupply"
                                    },
                                    "id": 4473,
                                    "name": "Identifier",
                                    "src": "1643:11:9"
                                  },
                                  {
                                    "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": 10254,
                                          "type": "function (uint256,uint256) pure returns (uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4414,
                                              "type": "uint256",
                                              "value": "totalSupply"
                                            },
                                            "id": 4474,
                                            "name": "Identifier",
                                            "src": "1657:11:9"
                                          }
                                        ],
                                        "id": 4475,
                                        "name": "MemberAccess",
                                        "src": "1657:15:9"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4462,
                                          "type": "uint256",
                                          "value": "absAmount"
                                        },
                                        "id": 4476,
                                        "name": "Identifier",
                                        "src": "1673:9:9"
                                      }
                                    ],
                                    "id": 4477,
                                    "name": "FunctionCall",
                                    "src": "1657:26:9"
                                  }
                                ],
                                "id": 4478,
                                "name": "Assignment",
                                "src": "1643:40:9"
                              }
                            ],
                            "id": 4479,
                            "name": "ExpressionStatement",
                            "src": "1643:40:9"
                          },
                          {
                            "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": 4412,
                                          "type": "mapping(address => uint256)",
                                          "value": "balances"
                                        },
                                        "id": 4480,
                                        "name": "Identifier",
                                        "src": "1697:8:9"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4452,
                                          "type": "address",
                                          "value": "_to"
                                        },
                                        "id": 4481,
                                        "name": "Identifier",
                                        "src": "1706:3:9"
                                      }
                                    ],
                                    "id": 4482,
                                    "name": "IndexAccess",
                                    "src": "1697:13:9"
                                  },
                                  {
                                    "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": 10254,
                                          "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": 4412,
                                                  "type": "mapping(address => uint256)",
                                                  "value": "balances"
                                                },
                                                "id": 4483,
                                                "name": "Identifier",
                                                "src": "1713:8:9"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4452,
                                                  "type": "address",
                                                  "value": "_to"
                                                },
                                                "id": 4484,
                                                "name": "Identifier",
                                                "src": "1722:3:9"
                                              }
                                            ],
                                            "id": 4485,
                                            "name": "IndexAccess",
                                            "src": "1713:13:9"
                                          }
                                        ],
                                        "id": 4486,
                                        "name": "MemberAccess",
                                        "src": "1713:17:9"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4462,
                                          "type": "uint256",
                                          "value": "absAmount"
                                        },
                                        "id": 4487,
                                        "name": "Identifier",
                                        "src": "1731:9:9"
                                      }
                                    ],
                                    "id": 4488,
                                    "name": "FunctionCall",
                                    "src": "1713:28:9"
                                  }
                                ],
                                "id": 4489,
                                "name": "Assignment",
                                "src": "1697:44:9"
                              }
                            ],
                            "id": 4490,
                            "name": "ExpressionStatement",
                            "src": "1697:44:9"
                          }
                        ],
                        "id": 4491,
                        "name": "Block",
                        "src": "1590:162:9"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4462,
                                      "type": "uint256",
                                      "value": "absAmount"
                                    },
                                    "id": 4492,
                                    "name": "Identifier",
                                    "src": "1772:9:9"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "uint256",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_int256",
                                              "typeString": "int256"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(uint256)",
                                          "value": "uint"
                                        },
                                        "id": 4493,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "1784:4:9"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "int256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isInlineArray": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "type": "int_const -1"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "operator": "-",
                                                  "prefix": true,
                                                  "type": "int_const -1"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "hexvalue": "31",
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": true,
                                                      "lValueRequested": false,
                                                      "subdenomination": null,
                                                      "token": "number",
                                                      "type": "int_const 1",
                                                      "value": "1"
                                                    },
                                                    "id": 4494,
                                                    "name": "Literal",
                                                    "src": "1791:1:9"
                                                  }
                                                ],
                                                "id": 4495,
                                                "name": "UnaryOperation",
                                                "src": "1790:2:9"
                                              }
                                            ],
                                            "id": 4496,
                                            "name": "TupleExpression",
                                            "src": "1789:4:9"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4454,
                                              "type": "int256",
                                              "value": "_amount"
                                            },
                                            "id": 4497,
                                            "name": "Identifier",
                                            "src": "1794:7:9"
                                          }
                                        ],
                                        "id": 4498,
                                        "name": "BinaryOperation",
                                        "src": "1789:12:9"
                                      }
                                    ],
                                    "id": 4499,
                                    "name": "FunctionCall",
                                    "src": "1784:18:9"
                                  }
                                ],
                                "id": 4500,
                                "name": "Assignment",
                                "src": "1772:30:9"
                              }
                            ],
                            "id": 4501,
                            "name": "ExpressionStatement",
                            "src": "1772:30:9"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4414,
                                      "type": "uint256",
                                      "value": "totalSupply"
                                    },
                                    "id": 4502,
                                    "name": "Identifier",
                                    "src": "1816:11:9"
                                  },
                                  {
                                    "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": 10230,
                                          "type": "function (uint256,uint256) pure returns (uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4414,
                                              "type": "uint256",
                                              "value": "totalSupply"
                                            },
                                            "id": 4503,
                                            "name": "Identifier",
                                            "src": "1830:11:9"
                                          }
                                        ],
                                        "id": 4504,
                                        "name": "MemberAccess",
                                        "src": "1830:15:9"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4462,
                                          "type": "uint256",
                                          "value": "absAmount"
                                        },
                                        "id": 4505,
                                        "name": "Identifier",
                                        "src": "1846:9:9"
                                      }
                                    ],
                                    "id": 4506,
                                    "name": "FunctionCall",
                                    "src": "1830:26:9"
                                  }
                                ],
                                "id": 4507,
                                "name": "Assignment",
                                "src": "1816:40:9"
                              }
                            ],
                            "id": 4508,
                            "name": "ExpressionStatement",
                            "src": "1816:40:9"
                          },
                          {
                            "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": 4412,
                                          "type": "mapping(address => uint256)",
                                          "value": "balances"
                                        },
                                        "id": 4509,
                                        "name": "Identifier",
                                        "src": "1870:8:9"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4452,
                                          "type": "address",
                                          "value": "_to"
                                        },
                                        "id": 4510,
                                        "name": "Identifier",
                                        "src": "1879:3:9"
                                      }
                                    ],
                                    "id": 4511,
                                    "name": "IndexAccess",
                                    "src": "1870:13:9"
                                  },
                                  {
                                    "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": 10230,
                                          "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": 4412,
                                                  "type": "mapping(address => uint256)",
                                                  "value": "balances"
                                                },
                                                "id": 4512,
                                                "name": "Identifier",
                                                "src": "1886:8:9"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4452,
                                                  "type": "address",
                                                  "value": "_to"
                                                },
                                                "id": 4513,
                                                "name": "Identifier",
                                                "src": "1895:3:9"
                                              }
                                            ],
                                            "id": 4514,
                                            "name": "IndexAccess",
                                            "src": "1886:13:9"
                                          }
                                        ],
                                        "id": 4515,
                                        "name": "MemberAccess",
                                        "src": "1886:17:9"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4462,
                                          "type": "uint256",
                                          "value": "absAmount"
                                        },
                                        "id": 4516,
                                        "name": "Identifier",
                                        "src": "1904:9:9"
                                      }
                                    ],
                                    "id": 4517,
                                    "name": "FunctionCall",
                                    "src": "1886:28:9"
                                  }
                                ],
                                "id": 4518,
                                "name": "Assignment",
                                "src": "1870:44:9"
                              }
                            ],
                            "id": 4519,
                            "name": "ExpressionStatement",
                            "src": "1870:44:9"
                          }
                        ],
                        "id": 4520,
                        "name": "Block",
                        "src": "1758:167:9"
                      }
                    ],
                    "id": 4521,
                    "name": "IfStatement",
                    "src": "1570:355:9"
                  },
                  {
                    "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_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4423,
                              "type": "function (address,int256)",
                              "value": "Mint"
                            },
                            "id": 4522,
                            "name": "Identifier",
                            "src": "1934:4:9"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4452,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 4523,
                            "name": "Identifier",
                            "src": "1939:3:9"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4454,
                              "type": "int256",
                              "value": "_amount"
                            },
                            "id": 4524,
                            "name": "Identifier",
                            "src": "1944:7:9"
                          }
                        ],
                        "id": 4525,
                        "name": "FunctionCall",
                        "src": "1934:18:9"
                      }
                    ],
                    "id": 4526,
                    "name": "ExpressionStatement",
                    "src": "1934:18:9"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 4460
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 4527,
                        "name": "Literal",
                        "src": "1969:4:9"
                      }
                    ],
                    "id": 4528,
                    "name": "Return",
                    "src": "1962:11:9"
                  }
                ],
                "id": 4529,
                "name": "Block",
                "src": "1424:556:9"
              }
            ],
            "id": 4530,
            "name": "FunctionDefinition",
            "src": "1349:631:9"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "setReputation",
              "payable": false,
              "scope": 4564,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_to",
                      "scope": 4563,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4531,
                        "name": "ElementaryTypeName",
                        "src": "2284:7:9"
                      }
                    ],
                    "id": 4532,
                    "name": "VariableDeclaration",
                    "src": "2284:11:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_amount",
                      "scope": 4563,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 4533,
                        "name": "ElementaryTypeName",
                        "src": "2297:7:9"
                      }
                    ],
                    "id": 4534,
                    "name": "VariableDeclaration",
                    "src": "2297:15:9"
                  }
                ],
                "id": 4535,
                "name": "ParameterList",
                "src": "2283:30:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 4563,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 4538,
                        "name": "ElementaryTypeName",
                        "src": "2340:4:9"
                      }
                    ],
                    "id": 4539,
                    "name": "VariableDeclaration",
                    "src": "2340:4:9"
                  }
                ],
                "id": 4540,
                "name": "ParameterList",
                "src": "2339:6:9"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10309,
                      "type": "modifier ()",
                      "value": "onlyOwner"
                    },
                    "id": 4536,
                    "name": "Identifier",
                    "src": "2321:9:9"
                  }
                ],
                "id": 4537,
                "name": "ModifierInvocation",
                "src": "2321:9:9"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4414,
                              "type": "uint256",
                              "value": "totalSupply"
                            },
                            "id": 4541,
                            "name": "Identifier",
                            "src": "2401:11:9"
                          },
                          {
                            "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": 10254,
                                  "type": "function (uint256,uint256) pure returns (uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "uint256",
                                          "type_conversion": false
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "sub",
                                              "referencedDeclaration": 10230,
                                              "type": "function (uint256,uint256) pure returns (uint256)"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4414,
                                                  "type": "uint256",
                                                  "value": "totalSupply"
                                                },
                                                "id": 4542,
                                                "name": "Identifier",
                                                "src": "2416:11:9"
                                              }
                                            ],
                                            "id": 4543,
                                            "name": "MemberAccess",
                                            "src": "2416:15:9"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4412,
                                                  "type": "mapping(address => uint256)",
                                                  "value": "balances"
                                                },
                                                "id": 4544,
                                                "name": "Identifier",
                                                "src": "2432:8:9"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4532,
                                                  "type": "address",
                                                  "value": "_to"
                                                },
                                                "id": 4545,
                                                "name": "Identifier",
                                                "src": "2441:3:9"
                                              }
                                            ],
                                            "id": 4546,
                                            "name": "IndexAccess",
                                            "src": "2432:13:9"
                                          }
                                        ],
                                        "id": 4547,
                                        "name": "FunctionCall",
                                        "src": "2416:30:9"
                                      }
                                    ],
                                    "id": 4548,
                                    "name": "TupleExpression",
                                    "src": "2415:32:9"
                                  }
                                ],
                                "id": 4549,
                                "name": "MemberAccess",
                                "src": "2415:36:9"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4534,
                                  "type": "uint256",
                                  "value": "_amount"
                                },
                                "id": 4550,
                                "name": "Identifier",
                                "src": "2452:7:9"
                              }
                            ],
                            "id": 4551,
                            "name": "FunctionCall",
                            "src": "2415:45:9"
                          }
                        ],
                        "id": 4552,
                        "name": "Assignment",
                        "src": "2401:59:9"
                      }
                    ],
                    "id": 4553,
                    "name": "ExpressionStatement",
                    "src": "2401:59:9"
                  },
                  {
                    "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": 4412,
                                  "type": "mapping(address => uint256)",
                                  "value": "balances"
                                },
                                "id": 4554,
                                "name": "Identifier",
                                "src": "2470:8:9"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4532,
                                  "type": "address",
                                  "value": "_to"
                                },
                                "id": 4555,
                                "name": "Identifier",
                                "src": "2479:3:9"
                              }
                            ],
                            "id": 4556,
                            "name": "IndexAccess",
                            "src": "2470:13:9"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4534,
                              "type": "uint256",
                              "value": "_amount"
                            },
                            "id": 4557,
                            "name": "Identifier",
                            "src": "2486:7:9"
                          }
                        ],
                        "id": 4558,
                        "name": "Assignment",
                        "src": "2470:23:9"
                      }
                    ],
                    "id": 4559,
                    "name": "ExpressionStatement",
                    "src": "2470:23:9"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 4540
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 4560,
                        "name": "Literal",
                        "src": "2510:4:9"
                      }
                    ],
                    "id": 4561,
                    "name": "Return",
                    "src": "2503:11:9"
                  }
                ],
                "id": 4562,
                "name": "Block",
                "src": "2346:175:9"
              }
            ],
            "id": 4563,
            "name": "FunctionDefinition",
            "src": "2261:260:9"
          }
        ],
        "id": 4564,
        "name": "ContractDefinition",
        "src": "308:2215:9"
      }
    ],
    "id": 4565,
    "name": "SourceUnit",
    "src": "0:2524:9"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-01-18T17:37:09.538Z"
}