{
  "contractName": "SafeMath",
  "abi": [],
  "bytecode": "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820931fca9ac379e297fde5ec5553c3bb0d73085a99e3c48b05096d3da73cba473d0029",
  "deployedBytecode": "0x6060604052600080fd00a165627a7a72305820931fca9ac379e297fde5ec5553c3bb0d73085a99e3c48b05096d3da73cba473d0029",
  "sourceMap": "211:678:16:-;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "211:678:16:-;;;;;",
  "source": "pragma solidity ^0.4.18;\n/**\n * @title SafeMath from https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/math/SafeMath.sol\n * @dev Math operations with safety checks that throw on error\n */\n\nlibrary SafeMath {\n  function mul(uint256 a, uint256 b) internal pure returns(uint256) {\n    uint256 c = a * b;\n    assert(a == 0 || c / a == b);\n    return c;\n  }\n\n  function div(uint256 a, uint256 b) internal pure returns(uint256) {\n    // assert(b > 0); // Solidity automatically throws when dividing by 0\n    uint256 c = a / b;\n    // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n    return c;\n  }\n\n  function sub(uint256 a, uint256 b) internal pure returns(uint256) {\n    assert(b <= a);\n    return a - b;\n  }\n\n  function add(uint256 a, uint256 b) internal pure returns(uint256) {\n    uint256 c = a + b;\n    assert(c >= a);\n    return c;\n  }\n}",
  "sourcePath": "/Users/lucaban/.ghq/github.com/DRI-network/RICO/contracts/SafeMath.sol",
  "ast": {
    "attributes": {
      "absolutePath": "/Users/lucaban/.ghq/github.com/DRI-network/RICO/contracts/SafeMath.sol",
      "exportedSymbols": {
        "SafeMath": [
          3755
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 3662,
        "name": "PragmaDirective",
        "src": "0:24:16"
      },
      {
        "attributes": {
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            null
          ],
          "contractKind": "library",
          "documentation": "@title SafeMath from https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/math/SafeMath.sol\n@dev Math operations with safety checks that throw on error",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            3755
          ],
          "name": "SafeMath",
          "scope": 3756
        },
        "children": [
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "mul",
              "payable": false,
              "scope": 3755,
              "stateMutability": "pure",
              "superFunction": null,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "a",
                      "scope": 3692,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 3663,
                        "name": "ElementaryTypeName",
                        "src": "245:7:16"
                      }
                    ],
                    "id": 3664,
                    "name": "VariableDeclaration",
                    "src": "245:9:16"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "b",
                      "scope": 3692,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 3665,
                        "name": "ElementaryTypeName",
                        "src": "256:7:16"
                      }
                    ],
                    "id": 3666,
                    "name": "VariableDeclaration",
                    "src": "256:9:16"
                  }
                ],
                "id": 3667,
                "name": "ParameterList",
                "src": "244:22:16"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 3692,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 3668,
                        "name": "ElementaryTypeName",
                        "src": "289:7:16"
                      }
                    ],
                    "id": 3669,
                    "name": "VariableDeclaration",
                    "src": "289:7:16"
                  }
                ],
                "id": 3670,
                "name": "ParameterList",
                "src": "288:9:16"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        3672
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "c",
                          "scope": 3692,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 3671,
                            "name": "ElementaryTypeName",
                            "src": "304:7:16"
                          }
                        ],
                        "id": 3672,
                        "name": "VariableDeclaration",
                        "src": "304:9:16"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "*",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3664,
                              "type": "uint256",
                              "value": "a"
                            },
                            "id": 3673,
                            "name": "Identifier",
                            "src": "316:1:16"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3666,
                              "type": "uint256",
                              "value": "b"
                            },
                            "id": 3674,
                            "name": "Identifier",
                            "src": "320:1:16"
                          }
                        ],
                        "id": 3675,
                        "name": "BinaryOperation",
                        "src": "316:5:16"
                      }
                    ],
                    "id": 3676,
                    "name": "VariableDeclarationStatement",
                    "src": "304:17:16"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3758,
                              "type": "function (bool) pure",
                              "value": "assert"
                            },
                            "id": 3677,
                            "name": "Identifier",
                            "src": "327:6:16"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "||",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "==",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 3664,
                                      "type": "uint256",
                                      "value": "a"
                                    },
                                    "id": 3678,
                                    "name": "Identifier",
                                    "src": "334:1:16"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 3679,
                                    "name": "Literal",
                                    "src": "339:1:16"
                                  }
                                ],
                                "id": 3680,
                                "name": "BinaryOperation",
                                "src": "334:6:16"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "==",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "/",
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3672,
                                          "type": "uint256",
                                          "value": "c"
                                        },
                                        "id": 3681,
                                        "name": "Identifier",
                                        "src": "344:1:16"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3664,
                                          "type": "uint256",
                                          "value": "a"
                                        },
                                        "id": 3682,
                                        "name": "Identifier",
                                        "src": "348:1:16"
                                      }
                                    ],
                                    "id": 3683,
                                    "name": "BinaryOperation",
                                    "src": "344:5:16"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 3666,
                                      "type": "uint256",
                                      "value": "b"
                                    },
                                    "id": 3684,
                                    "name": "Identifier",
                                    "src": "353:1:16"
                                  }
                                ],
                                "id": 3685,
                                "name": "BinaryOperation",
                                "src": "344:10:16"
                              }
                            ],
                            "id": 3686,
                            "name": "BinaryOperation",
                            "src": "334:20:16"
                          }
                        ],
                        "id": 3687,
                        "name": "FunctionCall",
                        "src": "327:28:16"
                      }
                    ],
                    "id": 3688,
                    "name": "ExpressionStatement",
                    "src": "327:28:16"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 3670
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 3672,
                          "type": "uint256",
                          "value": "c"
                        },
                        "id": 3689,
                        "name": "Identifier",
                        "src": "368:1:16"
                      }
                    ],
                    "id": 3690,
                    "name": "Return",
                    "src": "361:8:16"
                  }
                ],
                "id": 3691,
                "name": "Block",
                "src": "298:76:16"
              }
            ],
            "id": 3692,
            "name": "FunctionDefinition",
            "src": "232:142:16"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "div",
              "payable": false,
              "scope": 3755,
              "stateMutability": "pure",
              "superFunction": null,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "a",
                      "scope": 3710,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 3693,
                        "name": "ElementaryTypeName",
                        "src": "391:7:16"
                      }
                    ],
                    "id": 3694,
                    "name": "VariableDeclaration",
                    "src": "391:9:16"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "b",
                      "scope": 3710,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 3695,
                        "name": "ElementaryTypeName",
                        "src": "402:7:16"
                      }
                    ],
                    "id": 3696,
                    "name": "VariableDeclaration",
                    "src": "402:9:16"
                  }
                ],
                "id": 3697,
                "name": "ParameterList",
                "src": "390:22:16"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 3710,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 3698,
                        "name": "ElementaryTypeName",
                        "src": "435:7:16"
                      }
                    ],
                    "id": 3699,
                    "name": "VariableDeclaration",
                    "src": "435:7:16"
                  }
                ],
                "id": 3700,
                "name": "ParameterList",
                "src": "434:9:16"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        3702
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "c",
                          "scope": 3710,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 3701,
                            "name": "ElementaryTypeName",
                            "src": "524:7:16"
                          }
                        ],
                        "id": 3702,
                        "name": "VariableDeclaration",
                        "src": "524:9:16"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "/",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3694,
                              "type": "uint256",
                              "value": "a"
                            },
                            "id": 3703,
                            "name": "Identifier",
                            "src": "536:1:16"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3696,
                              "type": "uint256",
                              "value": "b"
                            },
                            "id": 3704,
                            "name": "Identifier",
                            "src": "540:1:16"
                          }
                        ],
                        "id": 3705,
                        "name": "BinaryOperation",
                        "src": "536:5:16"
                      }
                    ],
                    "id": 3706,
                    "name": "VariableDeclarationStatement",
                    "src": "524:17:16"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 3700
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 3702,
                          "type": "uint256",
                          "value": "c"
                        },
                        "id": 3707,
                        "name": "Identifier",
                        "src": "636:1:16"
                      }
                    ],
                    "id": 3708,
                    "name": "Return",
                    "src": "629:8:16"
                  }
                ],
                "id": 3709,
                "name": "Block",
                "src": "444:198:16"
              }
            ],
            "id": 3710,
            "name": "FunctionDefinition",
            "src": "378:264:16"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "sub",
              "payable": false,
              "scope": 3755,
              "stateMutability": "pure",
              "superFunction": null,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "a",
                      "scope": 3730,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 3711,
                        "name": "ElementaryTypeName",
                        "src": "659:7:16"
                      }
                    ],
                    "id": 3712,
                    "name": "VariableDeclaration",
                    "src": "659:9:16"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "b",
                      "scope": 3730,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 3713,
                        "name": "ElementaryTypeName",
                        "src": "670:7:16"
                      }
                    ],
                    "id": 3714,
                    "name": "VariableDeclaration",
                    "src": "670:9:16"
                  }
                ],
                "id": 3715,
                "name": "ParameterList",
                "src": "658:22:16"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 3730,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 3716,
                        "name": "ElementaryTypeName",
                        "src": "703:7:16"
                      }
                    ],
                    "id": 3717,
                    "name": "VariableDeclaration",
                    "src": "703:7:16"
                  }
                ],
                "id": 3718,
                "name": "ParameterList",
                "src": "702:9:16"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3758,
                              "type": "function (bool) pure",
                              "value": "assert"
                            },
                            "id": 3719,
                            "name": "Identifier",
                            "src": "718:6:16"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "<=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 3714,
                                  "type": "uint256",
                                  "value": "b"
                                },
                                "id": 3720,
                                "name": "Identifier",
                                "src": "725:1:16"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 3712,
                                  "type": "uint256",
                                  "value": "a"
                                },
                                "id": 3721,
                                "name": "Identifier",
                                "src": "730:1:16"
                              }
                            ],
                            "id": 3722,
                            "name": "BinaryOperation",
                            "src": "725:6:16"
                          }
                        ],
                        "id": 3723,
                        "name": "FunctionCall",
                        "src": "718:14:16"
                      }
                    ],
                    "id": 3724,
                    "name": "ExpressionStatement",
                    "src": "718:14:16"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 3718
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "-",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3712,
                              "type": "uint256",
                              "value": "a"
                            },
                            "id": 3725,
                            "name": "Identifier",
                            "src": "745:1:16"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3714,
                              "type": "uint256",
                              "value": "b"
                            },
                            "id": 3726,
                            "name": "Identifier",
                            "src": "749:1:16"
                          }
                        ],
                        "id": 3727,
                        "name": "BinaryOperation",
                        "src": "745:5:16"
                      }
                    ],
                    "id": 3728,
                    "name": "Return",
                    "src": "738:12:16"
                  }
                ],
                "id": 3729,
                "name": "Block",
                "src": "712:43:16"
              }
            ],
            "id": 3730,
            "name": "FunctionDefinition",
            "src": "646:109:16"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "add",
              "payable": false,
              "scope": 3755,
              "stateMutability": "pure",
              "superFunction": null,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "a",
                      "scope": 3754,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 3731,
                        "name": "ElementaryTypeName",
                        "src": "772:7:16"
                      }
                    ],
                    "id": 3732,
                    "name": "VariableDeclaration",
                    "src": "772:9:16"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "b",
                      "scope": 3754,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 3733,
                        "name": "ElementaryTypeName",
                        "src": "783:7:16"
                      }
                    ],
                    "id": 3734,
                    "name": "VariableDeclaration",
                    "src": "783:9:16"
                  }
                ],
                "id": 3735,
                "name": "ParameterList",
                "src": "771:22:16"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 3754,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 3736,
                        "name": "ElementaryTypeName",
                        "src": "816:7:16"
                      }
                    ],
                    "id": 3737,
                    "name": "VariableDeclaration",
                    "src": "816:7:16"
                  }
                ],
                "id": 3738,
                "name": "ParameterList",
                "src": "815:9:16"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        3740
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "c",
                          "scope": 3754,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 3739,
                            "name": "ElementaryTypeName",
                            "src": "831:7:16"
                          }
                        ],
                        "id": 3740,
                        "name": "VariableDeclaration",
                        "src": "831:9:16"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "+",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3732,
                              "type": "uint256",
                              "value": "a"
                            },
                            "id": 3741,
                            "name": "Identifier",
                            "src": "843:1:16"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3734,
                              "type": "uint256",
                              "value": "b"
                            },
                            "id": 3742,
                            "name": "Identifier",
                            "src": "847:1:16"
                          }
                        ],
                        "id": 3743,
                        "name": "BinaryOperation",
                        "src": "843:5:16"
                      }
                    ],
                    "id": 3744,
                    "name": "VariableDeclarationStatement",
                    "src": "831:17:16"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3758,
                              "type": "function (bool) pure",
                              "value": "assert"
                            },
                            "id": 3745,
                            "name": "Identifier",
                            "src": "854:6:16"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 3740,
                                  "type": "uint256",
                                  "value": "c"
                                },
                                "id": 3746,
                                "name": "Identifier",
                                "src": "861:1:16"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 3732,
                                  "type": "uint256",
                                  "value": "a"
                                },
                                "id": 3747,
                                "name": "Identifier",
                                "src": "866:1:16"
                              }
                            ],
                            "id": 3748,
                            "name": "BinaryOperation",
                            "src": "861:6:16"
                          }
                        ],
                        "id": 3749,
                        "name": "FunctionCall",
                        "src": "854:14:16"
                      }
                    ],
                    "id": 3750,
                    "name": "ExpressionStatement",
                    "src": "854:14:16"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 3738
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 3740,
                          "type": "uint256",
                          "value": "c"
                        },
                        "id": 3751,
                        "name": "Identifier",
                        "src": "881:1:16"
                      }
                    ],
                    "id": 3752,
                    "name": "Return",
                    "src": "874:8:16"
                  }
                ],
                "id": 3753,
                "name": "Block",
                "src": "825:62:16"
              }
            ],
            "id": 3754,
            "name": "FunctionDefinition",
            "src": "759:128:16"
          }
        ],
        "id": 3755,
        "name": "ContractDefinition",
        "src": "211:678:16"
      }
    ],
    "id": 3756,
    "name": "SourceUnit",
    "src": "0:889:16"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-03-07T05:10:52.563Z"
}