{"fileName":"ERC20.sol","contractName":"ERC20","source":"pragma solidity ^0.5.2;\n\nimport \"zos-lib/contracts/Initializable.sol\";\nimport \"./IERC20.sol\";\nimport \"../../math/SafeMath.sol\";\n\n/**\n * @title Standard ERC20 token\n *\n * @dev Implementation of the basic standard token.\n * https://eips.ethereum.org/EIPS/eip-20\n * Originally based on code by FirstBlood:\n * https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol\n *\n * This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for\n * all accounts just by listening to said events. Note that this isn't required by the specification, and other\n * compliant implementations may not do it.\n */\ncontract ERC20 is Initializable, IERC20 {\n    using SafeMath for uint256;\n\n    mapping (address => uint256) private _balances;\n\n    mapping (address => mapping (address => uint256)) private _allowed;\n\n    uint256 private _totalSupply;\n\n    /**\n     * @dev Total number of tokens in existence\n     */\n    function totalSupply() public view returns (uint256) {\n        return _totalSupply;\n    }\n\n    /**\n     * @dev Gets the balance of the specified address.\n     * @param owner The address to query the balance of.\n     * @return A uint256 representing the amount owned by the passed address.\n     */\n    function balanceOf(address owner) public view returns (uint256) {\n        return _balances[owner];\n    }\n\n    /**\n     * @dev Function to check the amount of tokens that an owner allowed to a spender.\n     * @param owner address The address which owns the funds.\n     * @param spender address The address which will spend the funds.\n     * @return A uint256 specifying the amount of tokens still available for the spender.\n     */\n    function allowance(address owner, address spender) public view returns (uint256) {\n        return _allowed[owner][spender];\n    }\n\n    /**\n     * @dev Transfer token to a specified address\n     * @param to The address to transfer to.\n     * @param value The amount to be transferred.\n     */\n    function transfer(address to, uint256 value) public returns (bool) {\n        _transfer(msg.sender, to, value);\n        return true;\n    }\n\n    /**\n     * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n     * Beware that changing an allowance with this method brings the risk that someone may use both the old\n     * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\n     * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n     * @param spender The address which will spend the funds.\n     * @param value The amount of tokens to be spent.\n     */\n    function approve(address spender, uint256 value) public returns (bool) {\n        _approve(msg.sender, spender, value);\n        return true;\n    }\n\n    /**\n     * @dev Transfer tokens from one address to another.\n     * Note that while this function emits an Approval event, this is not required as per the specification,\n     * and other compliant implementations may not emit the event.\n     * @param from address The address which you want to send tokens from\n     * @param to address The address which you want to transfer to\n     * @param value uint256 the amount of tokens to be transferred\n     */\n    function transferFrom(address from, address to, uint256 value) public returns (bool) {\n        _transfer(from, to, value);\n        _approve(from, msg.sender, _allowed[from][msg.sender].sub(value));\n        return true;\n    }\n\n    /**\n     * @dev Increase the amount of tokens that an owner allowed to a spender.\n     * approve should be called when _allowed[msg.sender][spender] == 0. To increment\n     * allowed value is better to use this function to avoid 2 calls (and wait until\n     * the first transaction is mined)\n     * From MonolithDAO Token.sol\n     * Emits an Approval event.\n     * @param spender The address which will spend the funds.\n     * @param addedValue The amount of tokens to increase the allowance by.\n     */\n    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {\n        _approve(msg.sender, spender, _allowed[msg.sender][spender].add(addedValue));\n        return true;\n    }\n\n    /**\n     * @dev Decrease the amount of tokens that an owner allowed to a spender.\n     * approve should be called when _allowed[msg.sender][spender] == 0. To decrement\n     * allowed value is better to use this function to avoid 2 calls (and wait until\n     * the first transaction is mined)\n     * From MonolithDAO Token.sol\n     * Emits an Approval event.\n     * @param spender The address which will spend the funds.\n     * @param subtractedValue The amount of tokens to decrease the allowance by.\n     */\n    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {\n        _approve(msg.sender, spender, _allowed[msg.sender][spender].sub(subtractedValue));\n        return true;\n    }\n\n    /**\n     * @dev Transfer token for a specified addresses\n     * @param from The address to transfer from.\n     * @param to The address to transfer to.\n     * @param value The amount to be transferred.\n     */\n    function _transfer(address from, address to, uint256 value) internal {\n        require(to != address(0));\n\n        _balances[from] = _balances[from].sub(value);\n        _balances[to] = _balances[to].add(value);\n        emit Transfer(from, to, value);\n    }\n\n    /**\n     * @dev Internal function that mints an amount of the token and assigns it to\n     * an account. This encapsulates the modification of balances such that the\n     * proper events are emitted.\n     * @param account The account that will receive the created tokens.\n     * @param value The amount that will be created.\n     */\n    function _mint(address account, uint256 value) internal {\n        require(account != address(0));\n\n        _totalSupply = _totalSupply.add(value);\n        _balances[account] = _balances[account].add(value);\n        emit Transfer(address(0), account, value);\n    }\n\n    /**\n     * @dev Internal function that burns an amount of the token of a given\n     * account.\n     * @param account The account whose tokens will be burnt.\n     * @param value The amount that will be burnt.\n     */\n    function _burn(address account, uint256 value) internal {\n        require(account != address(0));\n\n        _totalSupply = _totalSupply.sub(value);\n        _balances[account] = _balances[account].sub(value);\n        emit Transfer(account, address(0), value);\n    }\n\n    /**\n     * @dev Approve an address to spend another addresses' tokens.\n     * @param owner The address that owns the tokens.\n     * @param spender The address that will spend the tokens.\n     * @param value The number of tokens that can be spent.\n     */\n    function _approve(address owner, address spender, uint256 value) internal {\n        require(spender != address(0));\n        require(owner != address(0));\n\n        _allowed[owner][spender] = value;\n        emit Approval(owner, spender, value);\n    }\n\n    /**\n     * @dev Internal function that burns an amount of the token of a given\n     * account, deducting from the sender's allowance for said account. Uses the\n     * internal burn function.\n     * Emits an Approval event (reflecting the reduced allowance).\n     * @param account The account whose tokens will be burnt.\n     * @param value The amount that will be burnt.\n     */\n    function _burnFrom(address account, uint256 value) internal {\n        _burn(account, value);\n        _approve(account, msg.sender, _allowed[account][msg.sender].sub(value));\n    }\n\n    uint256[50] private ______gap;\n}\n","sourcePath":"openzeppelin-eth/contracts/token/ERC20/ERC20.sol","sourceMap":"673:7073:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;673:7073:10;;;;;;;;;;","deployedSourceMap":"673:7073:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;673:7073:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2782:145;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2782:145:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;977:89;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3390:224;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3390:224:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4128:200;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4128:200:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1278:104;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1278:104:10;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4847:210;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4847:210:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2009:137;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2009:137:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1713:129;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1713:129:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2782:145;2847:4;2863:36;2872:10;2884:7;2893:5;2863:8;:36;;:::i;:::-;2916:4;2909:11;;;;2782:145;;;;;:::o;977:89::-;1021:7;1047:12;;;;1040:19;;;;977:89;;:::o;3390:224::-;3469:4;3485:26;3495:4;3501:2;3505:5;3485:9;:26;;:::i;:::-;3521:65;3530:4;3536:10;3548:37;3579:5;3548:8;;;:14;3557:4;3548:14;;;;;;;;;;;;;;;;;:26;3563:10;3548:26;;;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;3521:8;:65;;:::i;:::-;3603:4;3596:11;;;;3390:224;;;;;;:::o;4128:200::-;4208:4;4224:76;4233:10;4245:7;4254:45;4288:10;4254:8;;;:20;4263:10;4254:20;;;;;;;;;;;;;;;;;:29;4275:7;4254:29;;;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;4224:8;:76;;:::i;:::-;4317:4;4310:11;;;;4128:200;;;;;:::o;1278:104::-;1333:7;1359:9;;;:16;1369:5;1359:16;;;;;;;;;;;;;;;;;;1352:23;;;;1278:104;;;;:::o;4847:210::-;4932:4;4948:81;4957:10;4969:7;4978:50;5012:15;4978:8;;;:20;4987:10;4978:20;;;;;;;;;;;;;;;;;:29;4999:7;4978:29;;;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;4948:8;:81;;:::i;:::-;5046:4;5039:11;;;;4847:210;;;;;:::o;2009:137::-;2070:4;2086:32;2096:10;2108:2;2112:5;2086:9;:32;;:::i;:::-;2135:4;2128:11;;;;2009:137;;;;;:::o;1713:129::-;1785:7;1811:8;;;:15;1820:5;1811:15;;;;;;;;;;;;;;;;;:24;1827:7;1811:24;;;;;;;;;;;;;;;;;;1804:31;;;;1713:129;;;;;:::o;6892:248::-;7003:1;6984:21;;:7;:21;;;;6976:30;;;;;;;;7041:1;7024:19;;:5;:19;;;;7016:28;;;;;;;;7082:5;7055:8;;;:15;7064:5;7055:15;;;;;;;;;;;;;;;;;:24;7071:7;7055:24;;;;;;;;;;;;;;;;:32;;;;;;;7118:7;7102:31;;7111:5;7102:31;;;7127:5;7102:31;;;;;;;;;;;;;;;;;;6892:248;;;;:::o;5276:256::-;5377:1;5363:16;;:2;:16;;;;5355:25;;;;;;;;5409:26;5429:5;5409:9;;;:15;5419:4;5409:15;;;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;5391:9;;;:15;5401:4;5391:15;;;;;;;;;;;;;;;;:44;;;;;;;5461:24;5479:5;5461:9;;;:13;5471:2;5461:13;;;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;5445:9;;;:13;5455:2;5445:13;;;;;;;;;;;;;;;;:40;;;;;;;5515:2;5500:25;;5509:4;5500:25;;;5519:5;5500:25;;;;;;;;;;;;;;;;;;5276:256;;;;:::o;1211:145:8:-;1269:7;1301:1;1296;:6;;1288:15;;;;;;;;1313:9;1329:1;1325;:5;1313:17;;1348:1;1341:8;;;;;1211:145;;;;;;:::o;1439:::-;1497:7;1516:9;1532:1;1528;:5;1516:17;;1556:1;1551;:6;;1543:15;;;;;;;;1576:1;1569:8;;;;;1439:145;;;;;;:::o","abi":[{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"}],"ast":{"absolutePath":"openzeppelin-eth/contracts/token/ERC20/ERC20.sol","exportedSymbols":{"ERC20":[1815]},"id":1816,"nodeType":"SourceUnit","nodes":[{"id":1427,"literals":["solidity","^","0.5",".2"],"nodeType":"PragmaDirective","src":"0:23:10"},{"absolutePath":"zos-lib/contracts/Initializable.sol","file":"zos-lib/contracts/Initializable.sol","id":1428,"nodeType":"ImportDirective","scope":1816,"sourceUnit":2629,"src":"25:45:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-eth/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","id":1429,"nodeType":"ImportDirective","scope":1816,"sourceUnit":2124,"src":"71:22:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-eth/contracts/math/SafeMath.sol","file":"../../math/SafeMath.sol","id":1430,"nodeType":"ImportDirective","scope":1816,"sourceUnit":1307,"src":"94:33:10","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":1431,"name":"Initializable","nodeType":"UserDefinedTypeName","referencedDeclaration":2628,"src":"691:13:10","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$2628","typeString":"contract Initializable"}},"id":1432,"nodeType":"InheritanceSpecifier","src":"691:13:10"},{"arguments":null,"baseName":{"contractScope":null,"id":1433,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":2123,"src":"706:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$2123","typeString":"contract IERC20"}},"id":1434,"nodeType":"InheritanceSpecifier","src":"706:6:10"}],"contractDependencies":[2123,2628],"contractKind":"contract","documentation":"@title Standard ERC20 token\n * @dev Implementation of the basic standard token.\nhttps://eips.ethereum.org/EIPS/eip-20\nOriginally based on code by FirstBlood:\nhttps://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol\n * This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for\nall accounts just by listening to said events. Note that this isn't required by the specification, and other\ncompliant implementations may not do it.","fullyImplemented":true,"id":1815,"linearizedBaseContracts":[1815,2123,2628],"name":"ERC20","nodeType":"ContractDefinition","nodes":[{"id":1437,"libraryName":{"contractScope":null,"id":1435,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":1306,"src":"725:8:10","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$1306","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"719:27:10","typeName":{"id":1436,"name":"uint256","nodeType":"ElementaryTypeName","src":"738:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":1441,"name":"_balances","nodeType":"VariableDeclaration","scope":1815,"src":"752:46:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":1440,"keyType":{"id":1438,"name":"address","nodeType":"ElementaryTypeName","src":"761:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"752:28:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":1439,"name":"uint256","nodeType":"ElementaryTypeName","src":"772:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"private"},{"constant":false,"id":1447,"name":"_allowed","nodeType":"VariableDeclaration","scope":1815,"src":"805:66:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":1446,"keyType":{"id":1442,"name":"address","nodeType":"ElementaryTypeName","src":"814:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"805:49:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":1445,"keyType":{"id":1443,"name":"address","nodeType":"ElementaryTypeName","src":"834:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"825:28:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":1444,"name":"uint256","nodeType":"ElementaryTypeName","src":"845:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"value":null,"visibility":"private"},{"constant":false,"id":1449,"name":"_totalSupply","nodeType":"VariableDeclaration","scope":1815,"src":"878:28:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1448,"name":"uint256","nodeType":"ElementaryTypeName","src":"878:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"private"},{"body":{"id":1456,"nodeType":"Block","src":"1030:36:10","statements":[{"expression":{"argumentTypes":null,"id":1454,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1449,"src":"1047:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1453,"id":1455,"nodeType":"Return","src":"1040:19:10"}]},"documentation":"@dev Total number of tokens in existence","id":1457,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nodeType":"FunctionDefinition","parameters":{"id":1450,"nodeType":"ParameterList","parameters":[],"src":"997:2:10"},"returnParameters":{"id":1453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1452,"name":"","nodeType":"VariableDeclaration","scope":1457,"src":"1021:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1451,"name":"uint256","nodeType":"ElementaryTypeName","src":"1021:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1020:9:10"},"scope":1815,"src":"977:89:10","stateMutability":"view","superFunction":2090,"visibility":"public"},{"body":{"id":1468,"nodeType":"Block","src":"1342:40:10","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1464,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1441,"src":"1359:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1466,"indexExpression":{"argumentTypes":null,"id":1465,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1459,"src":"1369:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1359:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1463,"id":1467,"nodeType":"Return","src":"1352:23:10"}]},"documentation":"@dev Gets the balance of the specified address.\n@param owner The address to query the balance of.\n@return A uint256 representing the amount owned by the passed address.","id":1469,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","parameters":{"id":1460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1459,"name":"owner","nodeType":"VariableDeclaration","scope":1469,"src":"1297:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1458,"name":"address","nodeType":"ElementaryTypeName","src":"1297:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1296:15:10"},"returnParameters":{"id":1463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1462,"name":"","nodeType":"VariableDeclaration","scope":1469,"src":"1333:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1461,"name":"uint256","nodeType":"ElementaryTypeName","src":"1333:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1332:9:10"},"scope":1815,"src":"1278:104:10","stateMutability":"view","superFunction":2097,"visibility":"public"},{"body":{"id":1484,"nodeType":"Block","src":"1794:48:10","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1478,"name":"_allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1447,"src":"1811:8:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1480,"indexExpression":{"argumentTypes":null,"id":1479,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1471,"src":"1820:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1811:15:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1482,"indexExpression":{"argumentTypes":null,"id":1481,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1473,"src":"1827:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1811:24:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1477,"id":1483,"nodeType":"Return","src":"1804:31:10"}]},"documentation":"@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param owner address The address which owns the funds.\n@param spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.","id":1485,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nodeType":"FunctionDefinition","parameters":{"id":1474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1471,"name":"owner","nodeType":"VariableDeclaration","scope":1485,"src":"1732:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1470,"name":"address","nodeType":"ElementaryTypeName","src":"1732:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1473,"name":"spender","nodeType":"VariableDeclaration","scope":1485,"src":"1747:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1472,"name":"address","nodeType":"ElementaryTypeName","src":"1747:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1731:32:10"},"returnParameters":{"id":1477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1476,"name":"","nodeType":"VariableDeclaration","scope":1485,"src":"1785:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1475,"name":"uint256","nodeType":"ElementaryTypeName","src":"1785:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1784:9:10"},"scope":1815,"src":"1713:129:10","stateMutability":"view","superFunction":2106,"visibility":"public"},{"body":{"id":1503,"nodeType":"Block","src":"2076:70:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1495,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3708,"src":"2096:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2096:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":1497,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1487,"src":"2108:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1498,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1489,"src":"2112:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1494,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1658,"src":"2086:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2086:32:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1500,"nodeType":"ExpressionStatement","src":"2086:32:10"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2135:4:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1493,"id":1502,"nodeType":"Return","src":"2128:11:10"}]},"documentation":"@dev Transfer token to a specified address\n@param to The address to transfer to.\n@param value The amount to be transferred.","id":1504,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","parameters":{"id":1490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1487,"name":"to","nodeType":"VariableDeclaration","scope":1504,"src":"2027:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1486,"name":"address","nodeType":"ElementaryTypeName","src":"2027:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1489,"name":"value","nodeType":"VariableDeclaration","scope":1504,"src":"2039:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1488,"name":"uint256","nodeType":"ElementaryTypeName","src":"2039:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2026:27:10"},"returnParameters":{"id":1493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1492,"name":"","nodeType":"VariableDeclaration","scope":1504,"src":"2070:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1491,"name":"bool","nodeType":"ElementaryTypeName","src":"2070:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2069:6:10"},"scope":1815,"src":"2009:137:10","stateMutability":"nonpayable","superFunction":2065,"visibility":"public"},{"body":{"id":1522,"nodeType":"Block","src":"2853:74:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1514,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3708,"src":"2872:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2872:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":1516,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1506,"src":"2884:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1517,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1508,"src":"2893:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1513,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1782,"src":"2863:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2863:36:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1519,"nodeType":"ExpressionStatement","src":"2863:36:10"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2916:4:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1512,"id":1521,"nodeType":"Return","src":"2909:11:10"}]},"documentation":"@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\nBeware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param spender The address which will spend the funds.\n@param value The amount of tokens to be spent.","id":1523,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nodeType":"FunctionDefinition","parameters":{"id":1509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1506,"name":"spender","nodeType":"VariableDeclaration","scope":1523,"src":"2799:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1505,"name":"address","nodeType":"ElementaryTypeName","src":"2799:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1508,"name":"value","nodeType":"VariableDeclaration","scope":1523,"src":"2816:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1507,"name":"uint256","nodeType":"ElementaryTypeName","src":"2816:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2798:32:10"},"returnParameters":{"id":1512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1511,"name":"","nodeType":"VariableDeclaration","scope":1523,"src":"2847:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1510,"name":"bool","nodeType":"ElementaryTypeName","src":"2847:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2846:6:10"},"scope":1815,"src":"2782:145:10","stateMutability":"nonpayable","superFunction":2074,"visibility":"public"},{"body":{"id":1557,"nodeType":"Block","src":"3475:139:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1535,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"3495:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1536,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"3501:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1537,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1529,"src":"3505:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1534,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1658,"src":"3485:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3485:26:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1539,"nodeType":"ExpressionStatement","src":"3485:26:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1541,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"3530:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1542,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3708,"src":"3536:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3536:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1551,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1529,"src":"3579:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1544,"name":"_allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1447,"src":"3548:8:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1546,"indexExpression":{"argumentTypes":null,"id":1545,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"3557:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3548:14:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1549,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1547,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3708,"src":"3563:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3563:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3548:26:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1261,"src":"3548:30:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3548:37:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1540,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1782,"src":"3521:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3521:65:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1554,"nodeType":"ExpressionStatement","src":"3521:65:10"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3603:4:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1533,"id":1556,"nodeType":"Return","src":"3596:11:10"}]},"documentation":"@dev Transfer tokens from one address to another.\nNote that while this function emits an Approval event, this is not required as per the specification,\nand other compliant implementations may not emit the event.\n@param from address The address which you want to send tokens from\n@param to address The address which you want to transfer to\n@param value uint256 the amount of tokens to be transferred","id":1558,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nodeType":"FunctionDefinition","parameters":{"id":1530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1525,"name":"from","nodeType":"VariableDeclaration","scope":1558,"src":"3412:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1524,"name":"address","nodeType":"ElementaryTypeName","src":"3412:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1527,"name":"to","nodeType":"VariableDeclaration","scope":1558,"src":"3426:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1526,"name":"address","nodeType":"ElementaryTypeName","src":"3426:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1529,"name":"value","nodeType":"VariableDeclaration","scope":1558,"src":"3438:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1528,"name":"uint256","nodeType":"ElementaryTypeName","src":"3438:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3411:41:10"},"returnParameters":{"id":1533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1532,"name":"","nodeType":"VariableDeclaration","scope":1558,"src":"3469:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1531,"name":"bool","nodeType":"ElementaryTypeName","src":"3469:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"3468:6:10"},"scope":1815,"src":"3390:224:10","stateMutability":"nonpayable","superFunction":2085,"visibility":"public"},{"body":{"id":1584,"nodeType":"Block","src":"4214:114:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1568,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3708,"src":"4233:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4233:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":1570,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1560,"src":"4245:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1578,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1562,"src":"4288:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1571,"name":"_allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1447,"src":"4254:8:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1574,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1572,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3708,"src":"4263:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4263:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4254:20:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1576,"indexExpression":{"argumentTypes":null,"id":1575,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1560,"src":"4275:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4254:29:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1285,"src":"4254:33:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4254:45:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1567,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1782,"src":"4224:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4224:76:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1581,"nodeType":"ExpressionStatement","src":"4224:76:10"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4317:4:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1566,"id":1583,"nodeType":"Return","src":"4310:11:10"}]},"documentation":"@dev Increase the amount of tokens that an owner allowed to a spender.\napprove should be called when _allowed[msg.sender][spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\nEmits an Approval event.\n@param spender The address which will spend the funds.\n@param addedValue The amount of tokens to increase the allowance by.","id":1585,"implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nodeType":"FunctionDefinition","parameters":{"id":1563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1560,"name":"spender","nodeType":"VariableDeclaration","scope":1585,"src":"4155:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1559,"name":"address","nodeType":"ElementaryTypeName","src":"4155:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1562,"name":"addedValue","nodeType":"VariableDeclaration","scope":1585,"src":"4172:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1561,"name":"uint256","nodeType":"ElementaryTypeName","src":"4172:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4154:37:10"},"returnParameters":{"id":1566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1565,"name":"","nodeType":"VariableDeclaration","scope":1585,"src":"4208:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1564,"name":"bool","nodeType":"ElementaryTypeName","src":"4208:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"4207:6:10"},"scope":1815,"src":"4128:200:10","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":1611,"nodeType":"Block","src":"4938:119:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1595,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3708,"src":"4957:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4957:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":1597,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1587,"src":"4969:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1605,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1589,"src":"5012:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1598,"name":"_allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1447,"src":"4978:8:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1601,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1599,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3708,"src":"4987:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4987:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4978:20:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1603,"indexExpression":{"argumentTypes":null,"id":1602,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1587,"src":"4999:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4978:29:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1261,"src":"4978:33:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4978:50:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1594,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1782,"src":"4948:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4948:81:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1608,"nodeType":"ExpressionStatement","src":"4948:81:10"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5046:4:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1593,"id":1610,"nodeType":"Return","src":"5039:11:10"}]},"documentation":"@dev Decrease the amount of tokens that an owner allowed to a spender.\napprove should be called when _allowed[msg.sender][spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\nEmits an Approval event.\n@param spender The address which will spend the funds.\n@param subtractedValue The amount of tokens to decrease the allowance by.","id":1612,"implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nodeType":"FunctionDefinition","parameters":{"id":1590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1587,"name":"spender","nodeType":"VariableDeclaration","scope":1612,"src":"4874:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1586,"name":"address","nodeType":"ElementaryTypeName","src":"4874:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1589,"name":"subtractedValue","nodeType":"VariableDeclaration","scope":1612,"src":"4891:23:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1588,"name":"uint256","nodeType":"ElementaryTypeName","src":"4891:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4873:42:10"},"returnParameters":{"id":1593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1592,"name":"","nodeType":"VariableDeclaration","scope":1612,"src":"4932:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1591,"name":"bool","nodeType":"ElementaryTypeName","src":"4932:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"4931:6:10"},"scope":1815,"src":"4847:210:10","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":1657,"nodeType":"Block","src":"5345:187:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1622,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1616,"src":"5363:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5377:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1623,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5369:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5369:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5363:16:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1621,"name":"require","nodeType":"Identifier","overloadedDeclarations":[3711,3712],"referencedDeclaration":3711,"src":"5355:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5355:25:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1628,"nodeType":"ExpressionStatement","src":"5355:25:10"},{"expression":{"argumentTypes":null,"id":1638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1629,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1441,"src":"5391:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1631,"indexExpression":{"argumentTypes":null,"id":1630,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1614,"src":"5401:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5391:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1636,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1618,"src":"5429:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1632,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1441,"src":"5409:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1634,"indexExpression":{"argumentTypes":null,"id":1633,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1614,"src":"5419:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5409:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1261,"src":"5409:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5409:26:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5391:44:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1639,"nodeType":"ExpressionStatement","src":"5391:44:10"},{"expression":{"argumentTypes":null,"id":1649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1640,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1441,"src":"5445:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1642,"indexExpression":{"argumentTypes":null,"id":1641,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1616,"src":"5455:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5445:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1647,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1618,"src":"5479:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1643,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1441,"src":"5461:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1645,"indexExpression":{"argumentTypes":null,"id":1644,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1616,"src":"5471:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5461:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1285,"src":"5461:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5461:24:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5445:40:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1650,"nodeType":"ExpressionStatement","src":"5445:40:10"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1652,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1614,"src":"5509:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1653,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1616,"src":"5515:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1654,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1618,"src":"5519:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1651,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2114,"src":"5500:8:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5500:25:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1656,"nodeType":"EmitStatement","src":"5495:30:10"}]},"documentation":"@dev Transfer token for a specified addresses\n@param from The address to transfer from.\n@param to The address to transfer to.\n@param value The amount to be transferred.","id":1658,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nodeType":"FunctionDefinition","parameters":{"id":1619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1614,"name":"from","nodeType":"VariableDeclaration","scope":1658,"src":"5295:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1613,"name":"address","nodeType":"ElementaryTypeName","src":"5295:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1616,"name":"to","nodeType":"VariableDeclaration","scope":1658,"src":"5309:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1615,"name":"address","nodeType":"ElementaryTypeName","src":"5309:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1618,"name":"value","nodeType":"VariableDeclaration","scope":1658,"src":"5321:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1617,"name":"uint256","nodeType":"ElementaryTypeName","src":"5321:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5294:41:10"},"returnParameters":{"id":1620,"nodeType":"ParameterList","parameters":[],"src":"5345:0:10"},"scope":1815,"src":"5276:256:10","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":1699,"nodeType":"Block","src":"5931:207:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1666,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1660,"src":"5949:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5968:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5960:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5960:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5949:21:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1665,"name":"require","nodeType":"Identifier","overloadedDeclarations":[3711,3712],"referencedDeclaration":3711,"src":"5941:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5941:30:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1672,"nodeType":"ExpressionStatement","src":"5941:30:10"},{"expression":{"argumentTypes":null,"id":1678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1673,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1449,"src":"5982:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1676,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"6014:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1674,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1449,"src":"5997:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1285,"src":"5997:16:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5997:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5982:38:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1679,"nodeType":"ExpressionStatement","src":"5982:38:10"},{"expression":{"argumentTypes":null,"id":1689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1680,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1441,"src":"6030:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1682,"indexExpression":{"argumentTypes":null,"id":1681,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1660,"src":"6040:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6030:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1687,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"6074:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1683,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1441,"src":"6051:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1685,"indexExpression":{"argumentTypes":null,"id":1684,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1660,"src":"6061:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6051:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1285,"src":"6051:22:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6051:29:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6030:50:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1690,"nodeType":"ExpressionStatement","src":"6030:50:10"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6112:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6104:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6104:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":1695,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1660,"src":"6116:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1696,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"6125:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1691,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2114,"src":"6095:8:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6095:36:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1698,"nodeType":"EmitStatement","src":"6090:41:10"}]},"documentation":"@dev Internal function that mints an amount of the token and assigns it to\nan account. This encapsulates the modification of balances such that the\nproper events are emitted.\n@param account The account that will receive the created tokens.\n@param value The amount that will be created.","id":1700,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nodeType":"FunctionDefinition","parameters":{"id":1663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1660,"name":"account","nodeType":"VariableDeclaration","scope":1700,"src":"5890:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1659,"name":"address","nodeType":"ElementaryTypeName","src":"5890:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1662,"name":"value","nodeType":"VariableDeclaration","scope":1700,"src":"5907:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1661,"name":"uint256","nodeType":"ElementaryTypeName","src":"5907:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5889:32:10"},"returnParameters":{"id":1664,"nodeType":"ParameterList","parameters":[],"src":"5931:0:10"},"scope":1815,"src":"5875:263:10","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":1741,"nodeType":"Block","src":"6420:207:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1708,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1702,"src":"6438:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6457:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6449:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6449:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"6438:21:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[3711,3712],"referencedDeclaration":3711,"src":"6430:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6430:30:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1714,"nodeType":"ExpressionStatement","src":"6430:30:10"},{"expression":{"argumentTypes":null,"id":1720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1715,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1449,"src":"6471:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1718,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1704,"src":"6503:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1716,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1449,"src":"6486:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1261,"src":"6486:16:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6486:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6471:38:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1721,"nodeType":"ExpressionStatement","src":"6471:38:10"},{"expression":{"argumentTypes":null,"id":1731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1722,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1441,"src":"6519:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1724,"indexExpression":{"argumentTypes":null,"id":1723,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1702,"src":"6529:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6519:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1729,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1704,"src":"6563:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1725,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1441,"src":"6540:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1727,"indexExpression":{"argumentTypes":null,"id":1726,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1702,"src":"6550:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6540:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1261,"src":"6540:22:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6540:29:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6519:50:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1732,"nodeType":"ExpressionStatement","src":"6519:50:10"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1734,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1702,"src":"6593:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6610:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6602:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6602:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":1738,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1704,"src":"6614:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1733,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2114,"src":"6584:8:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6584:36:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1740,"nodeType":"EmitStatement","src":"6579:41:10"}]},"documentation":"@dev Internal function that burns an amount of the token of a given\naccount.\n@param account The account whose tokens will be burnt.\n@param value The amount that will be burnt.","id":1742,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nodeType":"FunctionDefinition","parameters":{"id":1705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1702,"name":"account","nodeType":"VariableDeclaration","scope":1742,"src":"6379:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1701,"name":"address","nodeType":"ElementaryTypeName","src":"6379:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1704,"name":"value","nodeType":"VariableDeclaration","scope":1742,"src":"6396:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1703,"name":"uint256","nodeType":"ElementaryTypeName","src":"6396:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6378:32:10"},"returnParameters":{"id":1706,"nodeType":"ParameterList","parameters":[],"src":"6420:0:10"},"scope":1815,"src":"6364:263:10","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":1781,"nodeType":"Block","src":"6966:174:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1752,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1746,"src":"6984:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7003:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6995:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6995:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"6984:21:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1751,"name":"require","nodeType":"Identifier","overloadedDeclarations":[3711,3712],"referencedDeclaration":3711,"src":"6976:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6976:30:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1758,"nodeType":"ExpressionStatement","src":"6976:30:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1760,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1744,"src":"7024:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7041:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7033:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7033:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"7024:19:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1759,"name":"require","nodeType":"Identifier","overloadedDeclarations":[3711,3712],"referencedDeclaration":3711,"src":"7016:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7016:28:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1766,"nodeType":"ExpressionStatement","src":"7016:28:10"},{"expression":{"argumentTypes":null,"id":1773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1767,"name":"_allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1447,"src":"7055:8:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1770,"indexExpression":{"argumentTypes":null,"id":1768,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1744,"src":"7064:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7055:15:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1771,"indexExpression":{"argumentTypes":null,"id":1769,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1746,"src":"7071:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7055:24:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1772,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1748,"src":"7082:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7055:32:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1774,"nodeType":"ExpressionStatement","src":"7055:32:10"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1776,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1744,"src":"7111:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1777,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1746,"src":"7118:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1778,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1748,"src":"7127:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1775,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2122,"src":"7102:8:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7102:31:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1780,"nodeType":"EmitStatement","src":"7097:36:10"}]},"documentation":"@dev Approve an address to spend another addresses' tokens.\n@param owner The address that owns the tokens.\n@param spender The address that will spend the tokens.\n@param value The number of tokens that can be spent.","id":1782,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nodeType":"FunctionDefinition","parameters":{"id":1749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1744,"name":"owner","nodeType":"VariableDeclaration","scope":1782,"src":"6910:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1743,"name":"address","nodeType":"ElementaryTypeName","src":"6910:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1746,"name":"spender","nodeType":"VariableDeclaration","scope":1782,"src":"6925:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1745,"name":"address","nodeType":"ElementaryTypeName","src":"6925:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1748,"name":"value","nodeType":"VariableDeclaration","scope":1782,"src":"6942:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1747,"name":"uint256","nodeType":"ElementaryTypeName","src":"6942:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6909:47:10"},"returnParameters":{"id":1750,"nodeType":"ParameterList","parameters":[],"src":"6966:0:10"},"scope":1815,"src":"6892:248:10","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":1809,"nodeType":"Block","src":"7589:119:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1790,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1784,"src":"7605:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1791,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1786,"src":"7614:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1789,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1742,"src":"7599:5:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7599:21:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1793,"nodeType":"ExpressionStatement","src":"7599:21:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1795,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1784,"src":"7639:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1796,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3708,"src":"7648:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7648:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1805,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1786,"src":"7694:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1798,"name":"_allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1447,"src":"7660:8:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1800,"indexExpression":{"argumentTypes":null,"id":1799,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1784,"src":"7669:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7660:17:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1803,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1801,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3708,"src":"7678:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7678:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7660:29:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1261,"src":"7660:33:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7660:40:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1794,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1782,"src":"7630:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7630:71:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1808,"nodeType":"ExpressionStatement","src":"7630:71:10"}]},"documentation":"@dev Internal function that burns an amount of the token of a given\naccount, deducting from the sender's allowance for said account. Uses the\ninternal burn function.\nEmits an Approval event (reflecting the reduced allowance).\n@param account The account whose tokens will be burnt.\n@param value The amount that will be burnt.","id":1810,"implemented":true,"kind":"function","modifiers":[],"name":"_burnFrom","nodeType":"FunctionDefinition","parameters":{"id":1787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1784,"name":"account","nodeType":"VariableDeclaration","scope":1810,"src":"7548:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1783,"name":"address","nodeType":"ElementaryTypeName","src":"7548:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1786,"name":"value","nodeType":"VariableDeclaration","scope":1810,"src":"7565:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1785,"name":"uint256","nodeType":"ElementaryTypeName","src":"7565:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"7547:32:10"},"returnParameters":{"id":1788,"nodeType":"ParameterList","parameters":[],"src":"7589:0:10"},"scope":1815,"src":"7529:179:10","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"constant":false,"id":1814,"name":"______gap","nodeType":"VariableDeclaration","scope":1815,"src":"7714:29:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":1811,"name":"uint256","nodeType":"ElementaryTypeName","src":"7714:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1813,"length":{"argumentTypes":null,"hexValue":"3530","id":1812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7722:2:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"7714:11:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"value":null,"visibility":"private"}],"scope":1816,"src":"673:7073:10"}],"src":"0:7747:10"},"bytecode":"0x60806040523480156100115760006000fd5b50610017565b610b08806100266000396000f3fe60806040523480156100115760006000fd5b506004361061008d5760003560e01c806370a082311161005c57806370a0823114610206578063a457c2d71461025f578063a9059cbb146102c6578063dd62ed3e1461032d5761008d565b8063095ea7b31461009357806318160ddd146100fa57806323b872dd14610118578063395093511461019f5761008d565b60006000fd5b6100e0600480360360408110156100aa5760006000fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103a6565b604051808215151515815260200191505060405180910390f35b6101026103c8565b6040518082815260200191505060405180910390f35b6101856004803603606081101561012f5760006000fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103da565b604051808215151515815260200191505060405180910390f35b6101ec600480360360408110156101b65760006000fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104a5565b604051808215151515815260200191505060405180910390f35b6102496004803603602081101561021d5760006000fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061055e565b6040518082815260200191505060405180910390f35b6102ac600480360360408110156102765760006000fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105b2565b604051808215151515815260200191505060405180910390f35b610313600480360360408110156102dd5760006000fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061066b565b604051808215151515815260200191505060405180910390f35b610390600480360360408110156103445760006000fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061068d565b6040518082815260200191505060405180910390f35b60006103b933848461072263ffffffff16565b600190506103c2565b92915050565b600060356000505490506103d7565b90565b60006103ed84848461089363ffffffff16565b610495843361048a85603460005060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054610a8190919063ffffffff16565b61072263ffffffff16565b6001905061049e565b9392505050565b600061054f338461054485603460005060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054610aaa90919063ffffffff16565b61072263ffffffff16565b60019050610558565b92915050565b6000603360005060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505490506105ad565b919050565b600061065c338461065185603460005060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054610a8190919063ffffffff16565b61072263ffffffff16565b60019050610665565b92915050565b600061067e33848461089363ffffffff16565b60019050610687565b92915050565b6000603460005060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054905061071c565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561075f5760006000fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561079c5760006000fd5b80603460005060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000508190909055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156108d05760006000fd5b61092881603360005060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054610a8190919063ffffffff16565b603360005060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000508190909055506109cb81603360005060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054610aaa90919063ffffffff16565b603360005060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000508190909055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b505050565b6000828211151515610a935760006000fd5b6000828403905080915050610aa456505b92915050565b600060008284019050838110151515610ac35760006000fd5b80915050610acd56505b9291505056fea265627a7a72315820e674484077f0f91fc456b30a74d78f388634de1c7a37468c9bab8143a7f0005a64736f6c634300050b0032","deployedBytecode":"0x60806040523480156100115760006000fd5b506004361061008d5760003560e01c806370a082311161005c57806370a0823114610206578063a457c2d71461025f578063a9059cbb146102c6578063dd62ed3e1461032d5761008d565b8063095ea7b31461009357806318160ddd146100fa57806323b872dd14610118578063395093511461019f5761008d565b60006000fd5b6100e0600480360360408110156100aa5760006000fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103a6565b604051808215151515815260200191505060405180910390f35b6101026103c8565b6040518082815260200191505060405180910390f35b6101856004803603606081101561012f5760006000fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103da565b604051808215151515815260200191505060405180910390f35b6101ec600480360360408110156101b65760006000fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104a5565b604051808215151515815260200191505060405180910390f35b6102496004803603602081101561021d5760006000fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061055e565b6040518082815260200191505060405180910390f35b6102ac600480360360408110156102765760006000fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105b2565b604051808215151515815260200191505060405180910390f35b610313600480360360408110156102dd5760006000fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061066b565b604051808215151515815260200191505060405180910390f35b610390600480360360408110156103445760006000fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061068d565b6040518082815260200191505060405180910390f35b60006103b933848461072263ffffffff16565b600190506103c2565b92915050565b600060356000505490506103d7565b90565b60006103ed84848461089363ffffffff16565b610495843361048a85603460005060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054610a8190919063ffffffff16565b61072263ffffffff16565b6001905061049e565b9392505050565b600061054f338461054485603460005060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054610aaa90919063ffffffff16565b61072263ffffffff16565b60019050610558565b92915050565b6000603360005060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505490506105ad565b919050565b600061065c338461065185603460005060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054610a8190919063ffffffff16565b61072263ffffffff16565b60019050610665565b92915050565b600061067e33848461089363ffffffff16565b60019050610687565b92915050565b6000603460005060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054905061071c565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561075f5760006000fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561079c5760006000fd5b80603460005060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000508190909055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156108d05760006000fd5b61092881603360005060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054610a8190919063ffffffff16565b603360005060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000508190909055506109cb81603360005060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054610aaa90919063ffffffff16565b603360005060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000508190909055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b505050565b6000828211151515610a935760006000fd5b6000828403905080915050610aa456505b92915050565b600060008284019050838110151515610ac35760006000fd5b80915050610acd56505b9291505056fea265627a7a72315820e674484077f0f91fc456b30a74d78f388634de1c7a37468c9bab8143a7f0005a64736f6c634300050b0032","compiler":{"name":"solc","version":"0.5.11+commit.c082d0b4.Emscripten.clang","optimizer":{},"evmVersion":"constantinople"}}
