{
  "contractName": "Avatar",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "orgName",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_action",
          "type": "address"
        },
        {
          "name": "_params",
          "type": "bytes32[]"
        }
      ],
      "name": "genericAction",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "nativeReputation",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_externalToken",
          "type": "address"
        },
        {
          "name": "_spender",
          "type": "address"
        },
        {
          "name": "_addedValue",
          "type": "uint256"
        }
      ],
      "name": "externalTokenIncreaseApproval",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_externalToken",
          "type": "address"
        },
        {
          "name": "_from",
          "type": "address"
        },
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "externalTokenTransferFrom",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_amountInWei",
          "type": "uint256"
        },
        {
          "name": "_to",
          "type": "address"
        }
      ],
      "name": "sendEther",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_externalToken",
          "type": "address"
        },
        {
          "name": "_spender",
          "type": "address"
        },
        {
          "name": "_subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "externalTokenDecreaseApproval",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_externalToken",
          "type": "address"
        },
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "externalTokenTransfer",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "nativeToken",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_orgName",
          "type": "bytes32"
        },
        {
          "name": "_nativeToken",
          "type": "address"
        },
        {
          "name": "_nativeReputation",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "payable": true,
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_action",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_params",
          "type": "bytes32[]"
        }
      ],
      "name": "GenericAction",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_amountInWei",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "_to",
          "type": "address"
        }
      ],
      "name": "SendEther",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_externalToken",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_to",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "ExternalTokenTransfer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_externalToken",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_from",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_to",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "ExternalTokenTransferFrom",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_externalToken",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_spender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_addedValue",
          "type": "uint256"
        }
      ],
      "name": "ExternalTokenIncreaseApproval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_externalToken",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_spender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "ExternalTokenDecreaseApproval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "ReceiveEther",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    }
  ],
  "bytecode": "0x6060604052341561000f57600080fd5b6040516060806109d583398101604052808051919060200180519190602001805160008054600160a060020a03338116600160a060020a031992831617909255600196909655600280549582169587169590951790945560038054949091169390941692909217909255505061094b8061008a6000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631386dc2d81146100d45780636ce15a54146100f957806389ae1c901461016a5780638cf1355c146101995780638da5cb5b146101c1578063b756d5a2146101d4578063cb16d4a214610202578063d29ab9c414610224578063dab0efff1461024c578063e1758bd814610274578063f2fde38b14610287575b33600160a060020a03167ff32a9f77675fd5917534c7746608fd3e309eac68fbdcbf5925e24ca97a7043963460405190815260200160405180910390a2005b34156100df57600080fd5b6100e76102a8565b60405190815260200160405180910390f35b341561010457600080fd5b61015660048035600160a060020a03169060446024803590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506102ae95505050505050565b604051901515815260200160405180910390f35b341561017557600080fd5b61017d610400565b604051600160a060020a03909116815260200160405180910390f35b34156101a457600080fd5b610156600160a060020a036004358116906024351660443561040f565b34156101cc57600080fd5b61017d6104fb565b34156101df57600080fd5b610156600160a060020a036004358116906024358116906044351660643561050a565b341561020d57600080fd5b610156600435600160a060020a0360243516610610565b341561022f57600080fd5b610156600160a060020a03600435811690602435166044356106a3565b341561025757600080fd5b610156600160a060020a036004358116906024351660443561078f565b341561027f57600080fd5b61017d610875565b341561029257600080fd5b6102a6600160a060020a0360043516610884565b005b60015481565b6000805433600160a060020a039081169116146102ca57600080fd5b82600160a060020a03167f8518530cc6bc186721ab2fc226031ca054c8484893d8b0c7faab65a58aac238d8360405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561033557808201518382015260200161031d565b505050509050019250505060405180910390a282600160a060020a03166040517f616374696f6e28627974657333325b5d290000000000000000000000000000008152601101604051809103902060e060020a900460208451856040518463ffffffff1660e060020a02815260040180848152602001838152602001828051906020019060200280838360005b838110156103da5780820151838201526020016103c2565b5050505090500193505050506000604051808303818661646e5a03f49695505050505050565b600354600160a060020a031681565b6000805433600160a060020a0390811691161461042b57600080fd5b83600160a060020a031663d73dd623848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180515050600160a060020a0384167fbe7df27d98bd0614ae920a695c2c2be09c164d8456083da020a98538692c465f8484604051600160a060020a03909216825260208201526040908101905180910390a25060019392505050565b600054600160a060020a031681565b6000805433600160a060020a0390811691161461052657600080fd5b84600160a060020a03166323b872dd85858560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561059057600080fd5b6102c65a03f115156105a157600080fd5b50505060405180515050600160a060020a0385167f179c15de44aa7ab84896301974328eb40b5b40fe01cfe0fee2924ea712c3e843858585604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a2506001949350505050565b6000805433600160a060020a0390811691161461062c57600080fd5b600160a060020a03821683156108fc0284604051600060405180830381858888f19350505050151561065d57600080fd5b81600160a060020a03167f22fca66666089f39bc900dd6605b489df4aae6260cc8ea8257594cfb8c84926c8460405190815260200160405180910390a250600192915050565b6000805433600160a060020a039081169116146106bf57600080fd5b83600160a060020a03166366188463848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561071c57600080fd5b6102c65a03f1151561072d57600080fd5b50505060405180515050600160a060020a0384167f495e426dd61227fe840d969dfba17620c573364af8c37748ea71f96f744ae3348484604051600160a060020a03909216825260208201526040908101905180910390a25060019392505050565b6000805433600160a060020a039081169116146107ab57600080fd5b83600160a060020a031663a9059cbb848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561080857600080fd5b6102c65a03f1151561081957600080fd5b505050604051805190505082600160a060020a031684600160a060020a03167f49dc2a60d2599a7b6932d78fb694c30dfc596fe4e0282b5d0fd184b52472c04d8460405190815260200160405180910390a35060019392505050565b600254600160a060020a031681565b60005433600160a060020a0390811691161461089f57600080fd5b600160a060020a03811615156108b457600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a72305820b49690fdc869cf73e1bbb89bfbaaa86c9a3e47406b2cd36dc97d781f83d6a66c0029",
  "deployedBytecode": "0x6060604052600436106100955763ffffffff60e060020a6000350416631386dc2d81146100d45780636ce15a54146100f957806389ae1c901461016a5780638cf1355c146101995780638da5cb5b146101c1578063b756d5a2146101d4578063cb16d4a214610202578063d29ab9c414610224578063dab0efff1461024c578063e1758bd814610274578063f2fde38b14610287575b33600160a060020a03167ff32a9f77675fd5917534c7746608fd3e309eac68fbdcbf5925e24ca97a7043963460405190815260200160405180910390a2005b34156100df57600080fd5b6100e76102a8565b60405190815260200160405180910390f35b341561010457600080fd5b61015660048035600160a060020a03169060446024803590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506102ae95505050505050565b604051901515815260200160405180910390f35b341561017557600080fd5b61017d610400565b604051600160a060020a03909116815260200160405180910390f35b34156101a457600080fd5b610156600160a060020a036004358116906024351660443561040f565b34156101cc57600080fd5b61017d6104fb565b34156101df57600080fd5b610156600160a060020a036004358116906024358116906044351660643561050a565b341561020d57600080fd5b610156600435600160a060020a0360243516610610565b341561022f57600080fd5b610156600160a060020a03600435811690602435166044356106a3565b341561025757600080fd5b610156600160a060020a036004358116906024351660443561078f565b341561027f57600080fd5b61017d610875565b341561029257600080fd5b6102a6600160a060020a0360043516610884565b005b60015481565b6000805433600160a060020a039081169116146102ca57600080fd5b82600160a060020a03167f8518530cc6bc186721ab2fc226031ca054c8484893d8b0c7faab65a58aac238d8360405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561033557808201518382015260200161031d565b505050509050019250505060405180910390a282600160a060020a03166040517f616374696f6e28627974657333325b5d290000000000000000000000000000008152601101604051809103902060e060020a900460208451856040518463ffffffff1660e060020a02815260040180848152602001838152602001828051906020019060200280838360005b838110156103da5780820151838201526020016103c2565b5050505090500193505050506000604051808303818661646e5a03f49695505050505050565b600354600160a060020a031681565b6000805433600160a060020a0390811691161461042b57600080fd5b83600160a060020a031663d73dd623848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180515050600160a060020a0384167fbe7df27d98bd0614ae920a695c2c2be09c164d8456083da020a98538692c465f8484604051600160a060020a03909216825260208201526040908101905180910390a25060019392505050565b600054600160a060020a031681565b6000805433600160a060020a0390811691161461052657600080fd5b84600160a060020a03166323b872dd85858560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561059057600080fd5b6102c65a03f115156105a157600080fd5b50505060405180515050600160a060020a0385167f179c15de44aa7ab84896301974328eb40b5b40fe01cfe0fee2924ea712c3e843858585604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a2506001949350505050565b6000805433600160a060020a0390811691161461062c57600080fd5b600160a060020a03821683156108fc0284604051600060405180830381858888f19350505050151561065d57600080fd5b81600160a060020a03167f22fca66666089f39bc900dd6605b489df4aae6260cc8ea8257594cfb8c84926c8460405190815260200160405180910390a250600192915050565b6000805433600160a060020a039081169116146106bf57600080fd5b83600160a060020a03166366188463848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561071c57600080fd5b6102c65a03f1151561072d57600080fd5b50505060405180515050600160a060020a0384167f495e426dd61227fe840d969dfba17620c573364af8c37748ea71f96f744ae3348484604051600160a060020a03909216825260208201526040908101905180910390a25060019392505050565b6000805433600160a060020a039081169116146107ab57600080fd5b83600160a060020a031663a9059cbb848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561080857600080fd5b6102c65a03f1151561081957600080fd5b505050604051805190505082600160a060020a031684600160a060020a03167f49dc2a60d2599a7b6932d78fb694c30dfc596fe4e0282b5d0fd184b52472c04d8460405190815260200160405180910390a35060019392505050565b600254600160a060020a031681565b60005433600160a060020a0390811691161461089f57600080fd5b600160a060020a03811615156108b457600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a72305820b49690fdc869cf73e1bbb89bfbaaa86c9a3e47406b2cd36dc97d781f83d6a66c0029",
  "sourceMap": "401:5002:5:-;;;1318:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;501:5:33;:18;;-1:-1:-1;;;;;509:10:33;501:18;;-1:-1:-1;;;;;;501:18:33;;;;;;;;1422::5;;;;1450:11;:26;;;;;;;;;;;;;;;1486:16;:36;;;;;;;;;;;;;;;;;-1:-1:-1;;401:5002:5;;;;;;",
  "deployedSourceMap": "401:5002:5:-;;;;;;;;-1:-1:-1;;;401:5002:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1646:10:5;1633:35;;1658:9;1633:35;;;;;;;;;;;;;;401:5002;434:22;;;;;;;;;;;;;;;;;;;;;;;;;;;2060:384;;;;;;;;;;;;;-1:-1:-1;;;;;2060:384:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2060:384:5;;-1:-1:-1;2060:384:5;;-1:-1:-1;;;;;;2060:384:5;;;;;;;;;;;;;;;;;;495:34;;;;;;;;;;;;;;;-1:-1:-1;;;;;495:34:5;;;;;;;;;;;;;;;4376:314;;;;;;;;;;-1:-1:-1;;;;;4376:314:5;;;;;;;;;;;;238:20:33;;;;;;;;;;;;3661:339:5;;;;;;;;;;-1:-1:-1;;;;;3661:339:5;;;;;;;;;;;;;;;;;2660:184;;;;;;;;;;;;;;-1:-1:-1;;;;;2660:184:5;;;5071:329;;;;;;;;;;-1:-1:-1;;;;;5071:329:5;;;;;;;;;;;;3085:260;;;;;;;;;;-1:-1:-1;;;;;3085:260:5;;;;;;;;;;;;462:27;;;;;;;;;;;;834:169:33;;;;;;;;;;;;-1:-1:-1;;;;;834:169:33;;;;;434:22:5;;;;:::o;2060:384::-;2148:4;654:5:33;;640:10;-1:-1:-1;;;;;640:19:33;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;2168:31:5;;;2191:7;2168:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;-1:-1;;;;;2217:20:5;;2245:30;;;;;;;;;;;;;;;-1:-1:-1;;;2217:186:5;;2294:2;2347:7;:14;2395:7;2217:186;;;;;-1:-1:-1;;;2217:186:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;2060:384:5;-1:-1:-1;;;;;;2060:384:5:o;495:34::-;;;-1:-1:-1;;;;;495:34:5;;:::o;4376:314::-;4510:4;654:5:33;;640:10;-1:-1:-1;;;;;640:19:33;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;4530:31:5;;;4562:8;4572:11;4530:54;;;;;;;;;;;-1:-1:-1;;;4530:54:5;;;-1:-1:-1;;;;;4530:54:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;4594:68:5;;;4640:8;4650:11;4594:68;;-1:-1:-1;;;;;4594:68:5;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4679:4:5;4376:314;;;;;:::o;238:20:33:-;;;-1:-1:-1;;;;;238:20:33;;:::o;3661:339:5:-;3834:4;654:5:33;;640:10;-1:-1:-1;;;;;640:19:33;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;3854:27:5;;;3882:5;3889:3;3894:6;3854:47;;;;;;;;;;;-1:-1:-1;;;3854:47:5;;;-1:-1:-1;;;;;3854:47:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;3911:61:5;;;3953:5;3960:3;3965:6;3911:61;;-1:-1:-1;;;;;3911:61:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3989:4:5;3661:339;;;;;;:::o;2660:184::-;2736:4;654:5:33;;640:10;-1:-1:-1;;;;;640:19:33;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;2752:12:5;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2788:28:5;;;2798:12;2788:28;;;;;;;;;;;;;;-1:-1:-1;2833:4:5;2660:184;;;;:::o;5071:329::-;5211:4;654:5:33;;640:10;-1:-1:-1;;;;;640:19:33;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;5231:31:5;;;5263:8;5273:16;5231:59;;;;;;;;;;;-1:-1:-1;;;5231:59:5;;;-1:-1:-1;;;;;5231:59:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;5300:72:5;;;5345:8;5355:16;5300:72;;-1:-1:-1;;;;;5300:72:5;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5389:4:5;5071:329;;;;;:::o;3085:260::-;3201:4;654:5:33;;640:10;-1:-1:-1;;;;;640:19:33;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;3221:23:5;;;3245:3;3250:6;3221:36;;;;;;;;;;;-1:-1:-1;;;3221:36:5;;;-1:-1:-1;;;;;3221:36:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;3267:50:5;;;;;;;3310:6;3267:50;;;;;;;;;;;;;;-1:-1:-1;3334:4:5;3085:260;;;;;:::o;462:27::-;;;-1:-1:-1;;;;;462:27:5;;:::o;834:169:33:-;654:5;;640:10;-1:-1:-1;;;;;640:19:33;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;910:22:33;;;;902:31;;;;;;960:5;;-1:-1:-1;;;;;939:37:33;;;;960:5;939:37;;;;;;;;;;982:5;:16;;-1:-1:-1;;982:16:33;-1:-1:-1;;;;;982:16:33;;;;;;;;;;834:169::o",
  "source": "pragma solidity ^0.4.18;\n\nimport \"./Controller.sol\";\nimport \"./Reputation.sol\";\nimport \"./DAOToken.sol\";\nimport \"zeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"zeppelin-solidity/contracts/token/StandardToken.sol\";\n\n\ncontract ActionInterface {\n    function action(bytes32[] _params) public returns(bool);\n}\n\n\n/**\n * @title An Avatar holds tokens, reputation and ether for a controller\n */\ncontract Avatar is Ownable {\n    bytes32 public orgName;\n    DAOToken public nativeToken;\n    Reputation public nativeReputation;\n\n    event GenericAction(address indexed _action, bytes32[] _params);\n    event SendEther(uint _amountInWei, address indexed _to);\n    event ExternalTokenTransfer(address indexed _externalToken, address indexed _to, uint _value);\n    event ExternalTokenTransferFrom(address indexed _externalToken, address _from, address _to, uint _value);\n    event ExternalTokenIncreaseApproval(StandardToken indexed _externalToken, address _spender, uint _addedValue);\n    event ExternalTokenDecreaseApproval(StandardToken indexed _externalToken, address _spender, uint _subtractedValue);\n    event ReceiveEther(address indexed _sender, uint _value);\n\n    /**\n    * @dev the constructor takes organization name, native token and reputation system\n    and creates an avatar for a controller\n    */\n    function Avatar(bytes32 _orgName, DAOToken _nativeToken, Reputation _nativeReputation) public {\n        orgName = _orgName;\n        nativeToken = _nativeToken;\n        nativeReputation = _nativeReputation;\n    }\n\n    /**\n    * @dev enables an avatar to receive ethers\n    */\n    function() public payable {\n        ReceiveEther(msg.sender, msg.value);\n    }\n\n    /**\n    * @dev call an action function on an ActionInterface.\n    * This function use delegatecall and might expose the organization to security\n    * risk. Use this function only if you really knows what you are doing.\n    * @param _action the address of the contract to call.\n    * @param _params the params for the call.\n    * @return bool which represents success\n    */\n    function genericAction(address _action, bytes32[] _params)\n    public onlyOwner returns(bool)\n    {\n        GenericAction(_action, _params);\n\n        return _action.delegatecall(bytes4(keccak256(\"action(bytes32[])\")),\n        uint256(32),// length of length of the array\n        uint256(_params.length), // length of the array\n        _params);                 // array itself);\n    }\n\n    /**\n    * @dev send ethers from the avatar's wallet\n    * @param _amountInWei amount to send in Wei units\n    * @param _to send the ethers to this address\n    * @return bool which represents success\n    */\n    function sendEther(uint _amountInWei, address _to) public onlyOwner returns(bool) {\n        _to.transfer(_amountInWei);\n        SendEther(_amountInWei, _to);\n        return true;\n    }\n\n    /**\n    * @dev external token transfer\n    * @param _externalToken the token contract\n    * @param _to the destination address\n    * @param _value the amount of tokens to transfer\n    * @return bool which represents success\n    */\n    function externalTokenTransfer(StandardToken _externalToken, address _to, uint _value)\n    public onlyOwner returns(bool)\n    {\n        _externalToken.transfer(_to, _value);\n        ExternalTokenTransfer(_externalToken, _to, _value);\n        return true;\n    }\n\n    /**\n    * @dev external token transfer from a specific account\n    * @param _externalToken the token contract\n    * @param _from the account to spend token from\n    * @param _to the destination address\n    * @param _value the amount of tokens to transfer\n    * @return bool which represents success\n    */\n    function externalTokenTransferFrom(\n        StandardToken _externalToken,\n        address _from,\n        address _to,\n        uint _value\n    )\n    public onlyOwner returns(bool)\n    {\n        _externalToken.transferFrom(_from, _to, _value);\n        ExternalTokenTransferFrom(_externalToken, _from, _to, _value);\n        return true;\n    }\n\n    /**\n    * @dev increase approval for the spender address to spend a specified amount of tokens\n    *      on behalf of msg.sender.\n    * @param _externalToken the address of the Token Contract\n    * @param _spender address\n    * @param _addedValue the amount of ether (in Wei) which the approval is referring to.\n    * @return bool which represents a success\n    */\n    function externalTokenIncreaseApproval(StandardToken _externalToken, address _spender, uint _addedValue)\n    public onlyOwner returns(bool)\n    {\n        _externalToken.increaseApproval(_spender, _addedValue);\n        ExternalTokenIncreaseApproval(_externalToken, _spender, _addedValue);\n        return true;\n    }\n\n    /**\n    * @dev decrease approval for the spender address to spend a specified amount of tokens\n    *      on behalf of msg.sender.\n    * @param _externalToken the address of the Token Contract\n    * @param _spender address\n    * @param _subtractedValue the amount of ether (in Wei) which the approval is referring to.\n    * @return bool which represents a success\n    */\n    function externalTokenDecreaseApproval(StandardToken _externalToken, address _spender, uint _subtractedValue )\n    public onlyOwner returns(bool)\n    {\n        _externalToken.decreaseApproval(_spender, _subtractedValue);\n        ExternalTokenDecreaseApproval(_externalToken,_spender, _subtractedValue);\n        return true;\n    }\n\n}\n",
  "sourcePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/Avatar.sol",
  "ast": {
    "attributes": {
      "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/Avatar.sol",
      "exportedSymbols": {
        "ActionInterface": [
          2790
        ],
        "Avatar": [
          3065
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 2776,
        "name": "PragmaDirective",
        "src": "0:24:5"
      },
      {
        "attributes": {
          "SourceUnit": 4160,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/Controller.sol",
          "file": "./Controller.sol",
          "scope": 3066,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 2777,
        "name": "ImportDirective",
        "src": "26:26:5"
      },
      {
        "attributes": {
          "SourceUnit": 4545,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/Reputation.sol",
          "file": "./Reputation.sol",
          "scope": 3066,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 2778,
        "name": "ImportDirective",
        "src": "53:26:5"
      },
      {
        "attributes": {
          "SourceUnit": 4400,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/DAOToken.sol",
          "file": "./DAOToken.sol",
          "scope": 3066,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 2779,
        "name": "ImportDirective",
        "src": "80:24:5"
      },
      {
        "attributes": {
          "SourceUnit": 10302,
          "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol",
          "file": "zeppelin-solidity/contracts/ownership/Ownable.sol",
          "scope": 3066,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 2780,
        "name": "ImportDirective",
        "src": "105:59:5"
      },
      {
        "attributes": {
          "SourceUnit": 10856,
          "absolutePath": "zeppelin-solidity/contracts/token/StandardToken.sol",
          "file": "zeppelin-solidity/contracts/token/StandardToken.sol",
          "scope": 3066,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 2781,
        "name": "ImportDirective",
        "src": "165:61:5"
      },
      {
        "attributes": {
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            null
          ],
          "contractKind": "contract",
          "documentation": null,
          "fullyImplemented": false,
          "linearizedBaseContracts": [
            2790
          ],
          "name": "ActionInterface",
          "scope": 3066
        },
        "children": [
          {
            "attributes": {
              "body": null,
              "constant": false,
              "implemented": false,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "action",
              "payable": false,
              "scope": 2790,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_params",
                      "scope": 2789,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32[] memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "bytes32[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 2782,
                            "name": "ElementaryTypeName",
                            "src": "276:7:5"
                          }
                        ],
                        "id": 2783,
                        "name": "ArrayTypeName",
                        "src": "276:9:5"
                      }
                    ],
                    "id": 2784,
                    "name": "VariableDeclaration",
                    "src": "276:17:5"
                  }
                ],
                "id": 2785,
                "name": "ParameterList",
                "src": "275:19:5"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2789,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 2786,
                        "name": "ElementaryTypeName",
                        "src": "310:4:5"
                      }
                    ],
                    "id": 2787,
                    "name": "VariableDeclaration",
                    "src": "310:4:5"
                  }
                ],
                "id": 2788,
                "name": "ParameterList",
                "src": "309:6:5"
              }
            ],
            "id": 2789,
            "name": "FunctionDefinition",
            "src": "260:56:5"
          }
        ],
        "id": 2790,
        "name": "ContractDefinition",
        "src": "229:89:5"
      },
      {
        "attributes": {
          "contractDependencies": [
            10301
          ],
          "contractKind": "contract",
          "documentation": "@title An Avatar holds tokens, reputation and ether for a controller",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            3065,
            10301
          ],
          "name": "Avatar",
          "scope": 3066
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "Ownable",
                  "referencedDeclaration": 10301,
                  "type": "contract Ownable"
                },
                "id": 2791,
                "name": "UserDefinedTypeName",
                "src": "420:7:5"
              }
            ],
            "id": 2792,
            "name": "InheritanceSpecifier",
            "src": "420:7:5"
          },
          {
            "attributes": {
              "constant": false,
              "name": "orgName",
              "scope": 3065,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bytes32",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "bytes32",
                  "type": "bytes32"
                },
                "id": 2793,
                "name": "ElementaryTypeName",
                "src": "434:7:5"
              }
            ],
            "id": 2794,
            "name": "VariableDeclaration",
            "src": "434:22:5"
          },
          {
            "attributes": {
              "constant": false,
              "name": "nativeToken",
              "scope": 3065,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "contract DAOToken",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "DAOToken",
                  "referencedDeclaration": 4399,
                  "type": "contract DAOToken"
                },
                "id": 2795,
                "name": "UserDefinedTypeName",
                "src": "462:8:5"
              }
            ],
            "id": 2796,
            "name": "VariableDeclaration",
            "src": "462:27:5"
          },
          {
            "attributes": {
              "constant": false,
              "name": "nativeReputation",
              "scope": 3065,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "contract Reputation",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "Reputation",
                  "referencedDeclaration": 4544,
                  "type": "contract Reputation"
                },
                "id": 2797,
                "name": "UserDefinedTypeName",
                "src": "495:10:5"
              }
            ],
            "id": 2798,
            "name": "VariableDeclaration",
            "src": "495:34:5"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "GenericAction"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_action",
                      "scope": 2805,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2799,
                        "name": "ElementaryTypeName",
                        "src": "556:7:5"
                      }
                    ],
                    "id": 2800,
                    "name": "VariableDeclaration",
                    "src": "556:23:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_params",
                      "scope": 2805,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32[] memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "bytes32[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 2801,
                            "name": "ElementaryTypeName",
                            "src": "581:7:5"
                          }
                        ],
                        "id": 2802,
                        "name": "ArrayTypeName",
                        "src": "581:9:5"
                      }
                    ],
                    "id": 2803,
                    "name": "VariableDeclaration",
                    "src": "581:17:5"
                  }
                ],
                "id": 2804,
                "name": "ParameterList",
                "src": "555:44:5"
              }
            ],
            "id": 2805,
            "name": "EventDefinition",
            "src": "536:64:5"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "SendEther"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_amountInWei",
                      "scope": 2811,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2806,
                        "name": "ElementaryTypeName",
                        "src": "621:4:5"
                      }
                    ],
                    "id": 2807,
                    "name": "VariableDeclaration",
                    "src": "621:17:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_to",
                      "scope": 2811,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2808,
                        "name": "ElementaryTypeName",
                        "src": "640:7:5"
                      }
                    ],
                    "id": 2809,
                    "name": "VariableDeclaration",
                    "src": "640:19:5"
                  }
                ],
                "id": 2810,
                "name": "ParameterList",
                "src": "620:40:5"
              }
            ],
            "id": 2811,
            "name": "EventDefinition",
            "src": "605:56:5"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ExternalTokenTransfer"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_externalToken",
                      "scope": 2819,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2812,
                        "name": "ElementaryTypeName",
                        "src": "694:7:5"
                      }
                    ],
                    "id": 2813,
                    "name": "VariableDeclaration",
                    "src": "694:30:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_to",
                      "scope": 2819,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2814,
                        "name": "ElementaryTypeName",
                        "src": "726:7:5"
                      }
                    ],
                    "id": 2815,
                    "name": "VariableDeclaration",
                    "src": "726:19:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_value",
                      "scope": 2819,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2816,
                        "name": "ElementaryTypeName",
                        "src": "747:4:5"
                      }
                    ],
                    "id": 2817,
                    "name": "VariableDeclaration",
                    "src": "747:11:5"
                  }
                ],
                "id": 2818,
                "name": "ParameterList",
                "src": "693:66:5"
              }
            ],
            "id": 2819,
            "name": "EventDefinition",
            "src": "666:94:5"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ExternalTokenTransferFrom"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_externalToken",
                      "scope": 2829,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2820,
                        "name": "ElementaryTypeName",
                        "src": "797:7:5"
                      }
                    ],
                    "id": 2821,
                    "name": "VariableDeclaration",
                    "src": "797:30:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_from",
                      "scope": 2829,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2822,
                        "name": "ElementaryTypeName",
                        "src": "829:7:5"
                      }
                    ],
                    "id": 2823,
                    "name": "VariableDeclaration",
                    "src": "829:13:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_to",
                      "scope": 2829,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2824,
                        "name": "ElementaryTypeName",
                        "src": "844:7:5"
                      }
                    ],
                    "id": 2825,
                    "name": "VariableDeclaration",
                    "src": "844:11:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_value",
                      "scope": 2829,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2826,
                        "name": "ElementaryTypeName",
                        "src": "857:4:5"
                      }
                    ],
                    "id": 2827,
                    "name": "VariableDeclaration",
                    "src": "857:11:5"
                  }
                ],
                "id": 2828,
                "name": "ParameterList",
                "src": "796:73:5"
              }
            ],
            "id": 2829,
            "name": "EventDefinition",
            "src": "765:105:5"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ExternalTokenIncreaseApproval"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_externalToken",
                      "scope": 2837,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 10855,
                          "type": "contract StandardToken"
                        },
                        "id": 2830,
                        "name": "UserDefinedTypeName",
                        "src": "911:13:5"
                      }
                    ],
                    "id": 2831,
                    "name": "VariableDeclaration",
                    "src": "911:36:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_spender",
                      "scope": 2837,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2832,
                        "name": "ElementaryTypeName",
                        "src": "949:7:5"
                      }
                    ],
                    "id": 2833,
                    "name": "VariableDeclaration",
                    "src": "949:16:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_addedValue",
                      "scope": 2837,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2834,
                        "name": "ElementaryTypeName",
                        "src": "967:4:5"
                      }
                    ],
                    "id": 2835,
                    "name": "VariableDeclaration",
                    "src": "967:16:5"
                  }
                ],
                "id": 2836,
                "name": "ParameterList",
                "src": "910:74:5"
              }
            ],
            "id": 2837,
            "name": "EventDefinition",
            "src": "875:110:5"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ExternalTokenDecreaseApproval"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_externalToken",
                      "scope": 2845,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 10855,
                          "type": "contract StandardToken"
                        },
                        "id": 2838,
                        "name": "UserDefinedTypeName",
                        "src": "1026:13:5"
                      }
                    ],
                    "id": 2839,
                    "name": "VariableDeclaration",
                    "src": "1026:36:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_spender",
                      "scope": 2845,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2840,
                        "name": "ElementaryTypeName",
                        "src": "1064:7:5"
                      }
                    ],
                    "id": 2841,
                    "name": "VariableDeclaration",
                    "src": "1064:16:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_subtractedValue",
                      "scope": 2845,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2842,
                        "name": "ElementaryTypeName",
                        "src": "1082:4:5"
                      }
                    ],
                    "id": 2843,
                    "name": "VariableDeclaration",
                    "src": "1082:21:5"
                  }
                ],
                "id": 2844,
                "name": "ParameterList",
                "src": "1025:79:5"
              }
            ],
            "id": 2845,
            "name": "EventDefinition",
            "src": "990:115:5"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ReceiveEther"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 2851,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2846,
                        "name": "ElementaryTypeName",
                        "src": "1129:7:5"
                      }
                    ],
                    "id": 2847,
                    "name": "VariableDeclaration",
                    "src": "1129:23:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_value",
                      "scope": 2851,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2848,
                        "name": "ElementaryTypeName",
                        "src": "1154:4:5"
                      }
                    ],
                    "id": 2849,
                    "name": "VariableDeclaration",
                    "src": "1154:11:5"
                  }
                ],
                "id": 2850,
                "name": "ParameterList",
                "src": "1128:38:5"
              }
            ],
            "id": 2851,
            "name": "EventDefinition",
            "src": "1110:57:5"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": true,
              "modifiers": [
                null
              ],
              "name": "Avatar",
              "payable": false,
              "scope": 3065,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_orgName",
                      "scope": 2873,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 2852,
                        "name": "ElementaryTypeName",
                        "src": "1334:7:5"
                      }
                    ],
                    "id": 2853,
                    "name": "VariableDeclaration",
                    "src": "1334:16:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_nativeToken",
                      "scope": 2873,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract DAOToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "DAOToken",
                          "referencedDeclaration": 4399,
                          "type": "contract DAOToken"
                        },
                        "id": 2854,
                        "name": "UserDefinedTypeName",
                        "src": "1352:8:5"
                      }
                    ],
                    "id": 2855,
                    "name": "VariableDeclaration",
                    "src": "1352:21:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_nativeReputation",
                      "scope": 2873,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract Reputation",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Reputation",
                          "referencedDeclaration": 4544,
                          "type": "contract Reputation"
                        },
                        "id": 2856,
                        "name": "UserDefinedTypeName",
                        "src": "1375:10:5"
                      }
                    ],
                    "id": 2857,
                    "name": "VariableDeclaration",
                    "src": "1375:28:5"
                  }
                ],
                "id": 2858,
                "name": "ParameterList",
                "src": "1333:71:5"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2859,
                "name": "ParameterList",
                "src": "1412:0:5"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bytes32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2794,
                              "type": "bytes32",
                              "value": "orgName"
                            },
                            "id": 2860,
                            "name": "Identifier",
                            "src": "1422:7:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2853,
                              "type": "bytes32",
                              "value": "_orgName"
                            },
                            "id": 2861,
                            "name": "Identifier",
                            "src": "1432:8:5"
                          }
                        ],
                        "id": 2862,
                        "name": "Assignment",
                        "src": "1422:18:5"
                      }
                    ],
                    "id": 2863,
                    "name": "ExpressionStatement",
                    "src": "1422:18:5"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract DAOToken"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2796,
                              "type": "contract DAOToken",
                              "value": "nativeToken"
                            },
                            "id": 2864,
                            "name": "Identifier",
                            "src": "1450:11:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2855,
                              "type": "contract DAOToken",
                              "value": "_nativeToken"
                            },
                            "id": 2865,
                            "name": "Identifier",
                            "src": "1464:12:5"
                          }
                        ],
                        "id": 2866,
                        "name": "Assignment",
                        "src": "1450:26:5"
                      }
                    ],
                    "id": 2867,
                    "name": "ExpressionStatement",
                    "src": "1450:26:5"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract Reputation"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2798,
                              "type": "contract Reputation",
                              "value": "nativeReputation"
                            },
                            "id": 2868,
                            "name": "Identifier",
                            "src": "1486:16:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2857,
                              "type": "contract Reputation",
                              "value": "_nativeReputation"
                            },
                            "id": 2869,
                            "name": "Identifier",
                            "src": "1505:17:5"
                          }
                        ],
                        "id": 2870,
                        "name": "Assignment",
                        "src": "1486:36:5"
                      }
                    ],
                    "id": 2871,
                    "name": "ExpressionStatement",
                    "src": "1486:36:5"
                  }
                ],
                "id": 2872,
                "name": "Block",
                "src": "1412:117:5"
              }
            ],
            "id": 2873,
            "name": "FunctionDefinition",
            "src": "1318:211:5"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "",
              "payable": true,
              "scope": 3065,
              "stateMutability": "payable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2874,
                "name": "ParameterList",
                "src": "1605:2:5"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2875,
                "name": "ParameterList",
                "src": "1623:0:5"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2851,
                              "type": "function (address,uint256)",
                              "value": "ReceiveEther"
                            },
                            "id": 2876,
                            "name": "Identifier",
                            "src": "1633:12:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 2877,
                                "name": "Identifier",
                                "src": "1646:3:5"
                              }
                            ],
                            "id": 2878,
                            "name": "MemberAccess",
                            "src": "1646:10:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "value",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 2879,
                                "name": "Identifier",
                                "src": "1658:3:5"
                              }
                            ],
                            "id": 2880,
                            "name": "MemberAccess",
                            "src": "1658:9:5"
                          }
                        ],
                        "id": 2881,
                        "name": "FunctionCall",
                        "src": "1633:35:5"
                      }
                    ],
                    "id": 2882,
                    "name": "ExpressionStatement",
                    "src": "1633:35:5"
                  }
                ],
                "id": 2883,
                "name": "Block",
                "src": "1623:52:5"
              }
            ],
            "id": 2884,
            "name": "FunctionDefinition",
            "src": "1597:78:5"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "genericAction",
              "payable": false,
              "scope": 3065,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_action",
                      "scope": 2919,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2885,
                        "name": "ElementaryTypeName",
                        "src": "2083:7:5"
                      }
                    ],
                    "id": 2886,
                    "name": "VariableDeclaration",
                    "src": "2083:15:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_params",
                      "scope": 2919,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32[] memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "bytes32[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 2887,
                            "name": "ElementaryTypeName",
                            "src": "2100:7:5"
                          }
                        ],
                        "id": 2888,
                        "name": "ArrayTypeName",
                        "src": "2100:9:5"
                      }
                    ],
                    "id": 2889,
                    "name": "VariableDeclaration",
                    "src": "2100:17:5"
                  }
                ],
                "id": 2890,
                "name": "ParameterList",
                "src": "2082:36:5"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2919,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 2893,
                        "name": "ElementaryTypeName",
                        "src": "2148:4:5"
                      }
                    ],
                    "id": 2894,
                    "name": "VariableDeclaration",
                    "src": "2148:4:5"
                  }
                ],
                "id": 2895,
                "name": "ParameterList",
                "src": "2147:6:5"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10275,
                      "type": "modifier ()",
                      "value": "onlyOwner"
                    },
                    "id": 2891,
                    "name": "Identifier",
                    "src": "2130:9:5"
                  }
                ],
                "id": 2892,
                "name": "ModifierInvocation",
                "src": "2130:9:5"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2805,
                              "type": "function (address,bytes32[] memory)",
                              "value": "GenericAction"
                            },
                            "id": 2896,
                            "name": "Identifier",
                            "src": "2168:13:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2886,
                              "type": "address",
                              "value": "_action"
                            },
                            "id": 2897,
                            "name": "Identifier",
                            "src": "2182:7:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2889,
                              "type": "bytes32[] memory",
                              "value": "_params"
                            },
                            "id": 2898,
                            "name": "Identifier",
                            "src": "2191:7:5"
                          }
                        ],
                        "id": 2899,
                        "name": "FunctionCall",
                        "src": "2168:31:5"
                      }
                    ],
                    "id": 2900,
                    "name": "ExpressionStatement",
                    "src": "2168:31:5"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 2895
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes4",
                                  "typeString": "bytes4"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "delegatecall",
                              "referencedDeclaration": null,
                              "type": "function () returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2886,
                                  "type": "address",
                                  "value": "_action"
                                },
                                "id": 2901,
                                "name": "Identifier",
                                "src": "2217:7:5"
                              }
                            ],
                            "id": 2902,
                            "name": "MemberAccess",
                            "src": "2217:20:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes4",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(bytes4)",
                                  "value": "bytes4"
                                },
                                "id": 2903,
                                "name": "ElementaryTypeNameExpression",
                                "src": "2238:6:5"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes32",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_stringliteral_7ff4b6301c72901450252ee5e8584376c615d5c87d4c0b2d9dafc6024e2589a0",
                                          "typeString": "literal_string \"action(bytes32[])\""
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10861,
                                      "type": "function () pure returns (bytes32)",
                                      "value": "keccak256"
                                    },
                                    "id": 2904,
                                    "name": "Identifier",
                                    "src": "2245:9:5"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "616374696f6e28627974657333325b5d29",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "string",
                                      "type": "literal_string \"action(bytes32[])\"",
                                      "value": "action(bytes32[])"
                                    },
                                    "id": 2905,
                                    "name": "Literal",
                                    "src": "2255:19:5"
                                  }
                                ],
                                "id": 2906,
                                "name": "FunctionCall",
                                "src": "2245:30:5"
                              }
                            ],
                            "id": 2907,
                            "name": "FunctionCall",
                            "src": "2238:38:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "uint256",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_32_by_1",
                                      "typeString": "int_const 32"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(uint256)",
                                  "value": "uint256"
                                },
                                "id": 2908,
                                "name": "ElementaryTypeNameExpression",
                                "src": "2286:7:5"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "3332",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 32",
                                  "value": "32"
                                },
                                "id": 2909,
                                "name": "Literal",
                                "src": "2294:2:5"
                              }
                            ],
                            "id": 2910,
                            "name": "FunctionCall",
                            "src": "2286:11:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "uint256",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(uint256)",
                                  "value": "uint256"
                                },
                                "id": 2911,
                                "name": "ElementaryTypeNameExpression",
                                "src": "2339:7:5"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "length",
                                  "referencedDeclaration": null,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2889,
                                      "type": "bytes32[] memory",
                                      "value": "_params"
                                    },
                                    "id": 2912,
                                    "name": "Identifier",
                                    "src": "2347:7:5"
                                  }
                                ],
                                "id": 2913,
                                "name": "MemberAccess",
                                "src": "2347:14:5"
                              }
                            ],
                            "id": 2914,
                            "name": "FunctionCall",
                            "src": "2339:23:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2889,
                              "type": "bytes32[] memory",
                              "value": "_params"
                            },
                            "id": 2915,
                            "name": "Identifier",
                            "src": "2395:7:5"
                          }
                        ],
                        "id": 2916,
                        "name": "FunctionCall",
                        "src": "2217:186:5"
                      }
                    ],
                    "id": 2917,
                    "name": "Return",
                    "src": "2210:193:5"
                  }
                ],
                "id": 2918,
                "name": "Block",
                "src": "2158:286:5"
              }
            ],
            "id": 2919,
            "name": "FunctionDefinition",
            "src": "2060:384:5"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "sendEther",
              "payable": false,
              "scope": 3065,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_amountInWei",
                      "scope": 2944,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2920,
                        "name": "ElementaryTypeName",
                        "src": "2679:4:5"
                      }
                    ],
                    "id": 2921,
                    "name": "VariableDeclaration",
                    "src": "2679:17:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_to",
                      "scope": 2944,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2922,
                        "name": "ElementaryTypeName",
                        "src": "2698:7:5"
                      }
                    ],
                    "id": 2923,
                    "name": "VariableDeclaration",
                    "src": "2698:11:5"
                  }
                ],
                "id": 2924,
                "name": "ParameterList",
                "src": "2678:32:5"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2944,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 2927,
                        "name": "ElementaryTypeName",
                        "src": "2736:4:5"
                      }
                    ],
                    "id": 2928,
                    "name": "VariableDeclaration",
                    "src": "2736:4:5"
                  }
                ],
                "id": 2929,
                "name": "ParameterList",
                "src": "2735:6:5"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10275,
                      "type": "modifier ()",
                      "value": "onlyOwner"
                    },
                    "id": 2925,
                    "name": "Identifier",
                    "src": "2718:9:5"
                  }
                ],
                "id": 2926,
                "name": "ModifierInvocation",
                "src": "2718:9:5"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "transfer",
                              "referencedDeclaration": null,
                              "type": "function (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2923,
                                  "type": "address",
                                  "value": "_to"
                                },
                                "id": 2930,
                                "name": "Identifier",
                                "src": "2752:3:5"
                              }
                            ],
                            "id": 2932,
                            "name": "MemberAccess",
                            "src": "2752:12:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2921,
                              "type": "uint256",
                              "value": "_amountInWei"
                            },
                            "id": 2933,
                            "name": "Identifier",
                            "src": "2765:12:5"
                          }
                        ],
                        "id": 2934,
                        "name": "FunctionCall",
                        "src": "2752:26:5"
                      }
                    ],
                    "id": 2935,
                    "name": "ExpressionStatement",
                    "src": "2752:26:5"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2811,
                              "type": "function (uint256,address)",
                              "value": "SendEther"
                            },
                            "id": 2936,
                            "name": "Identifier",
                            "src": "2788:9:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2921,
                              "type": "uint256",
                              "value": "_amountInWei"
                            },
                            "id": 2937,
                            "name": "Identifier",
                            "src": "2798:12:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2923,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 2938,
                            "name": "Identifier",
                            "src": "2812:3:5"
                          }
                        ],
                        "id": 2939,
                        "name": "FunctionCall",
                        "src": "2788:28:5"
                      }
                    ],
                    "id": 2940,
                    "name": "ExpressionStatement",
                    "src": "2788:28:5"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 2929
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 2941,
                        "name": "Literal",
                        "src": "2833:4:5"
                      }
                    ],
                    "id": 2942,
                    "name": "Return",
                    "src": "2826:11:5"
                  }
                ],
                "id": 2943,
                "name": "Block",
                "src": "2742:102:5"
              }
            ],
            "id": 2944,
            "name": "FunctionDefinition",
            "src": "2660:184:5"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "externalTokenTransfer",
              "payable": false,
              "scope": 3065,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_externalToken",
                      "scope": 2973,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 10855,
                          "type": "contract StandardToken"
                        },
                        "id": 2945,
                        "name": "UserDefinedTypeName",
                        "src": "3116:13:5"
                      }
                    ],
                    "id": 2946,
                    "name": "VariableDeclaration",
                    "src": "3116:28:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_to",
                      "scope": 2973,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2947,
                        "name": "ElementaryTypeName",
                        "src": "3146:7:5"
                      }
                    ],
                    "id": 2948,
                    "name": "VariableDeclaration",
                    "src": "3146:11:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_value",
                      "scope": 2973,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2949,
                        "name": "ElementaryTypeName",
                        "src": "3159:4:5"
                      }
                    ],
                    "id": 2950,
                    "name": "VariableDeclaration",
                    "src": "3159:11:5"
                  }
                ],
                "id": 2951,
                "name": "ParameterList",
                "src": "3115:56:5"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2973,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 2954,
                        "name": "ElementaryTypeName",
                        "src": "3201:4:5"
                      }
                    ],
                    "id": 2955,
                    "name": "VariableDeclaration",
                    "src": "3201:4:5"
                  }
                ],
                "id": 2956,
                "name": "ParameterList",
                "src": "3200:6:5"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10275,
                      "type": "modifier ()",
                      "value": "onlyOwner"
                    },
                    "id": 2952,
                    "name": "Identifier",
                    "src": "3183:9:5"
                  }
                ],
                "id": 2953,
                "name": "ModifierInvocation",
                "src": "3183:9:5"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "transfer",
                              "referencedDeclaration": 10374,
                              "type": "function (address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2946,
                                  "type": "contract StandardToken",
                                  "value": "_externalToken"
                                },
                                "id": 2957,
                                "name": "Identifier",
                                "src": "3221:14:5"
                              }
                            ],
                            "id": 2959,
                            "name": "MemberAccess",
                            "src": "3221:23:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2948,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 2960,
                            "name": "Identifier",
                            "src": "3245:3:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2950,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 2961,
                            "name": "Identifier",
                            "src": "3250:6:5"
                          }
                        ],
                        "id": 2962,
                        "name": "FunctionCall",
                        "src": "3221:36:5"
                      }
                    ],
                    "id": 2963,
                    "name": "ExpressionStatement",
                    "src": "3221:36:5"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$10855",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2819,
                              "type": "function (address,address,uint256)",
                              "value": "ExternalTokenTransfer"
                            },
                            "id": 2964,
                            "name": "Identifier",
                            "src": "3267:21:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2946,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 2965,
                            "name": "Identifier",
                            "src": "3289:14:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2948,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 2966,
                            "name": "Identifier",
                            "src": "3305:3:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2950,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 2967,
                            "name": "Identifier",
                            "src": "3310:6:5"
                          }
                        ],
                        "id": 2968,
                        "name": "FunctionCall",
                        "src": "3267:50:5"
                      }
                    ],
                    "id": 2969,
                    "name": "ExpressionStatement",
                    "src": "3267:50:5"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 2956
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 2970,
                        "name": "Literal",
                        "src": "3334:4:5"
                      }
                    ],
                    "id": 2971,
                    "name": "Return",
                    "src": "3327:11:5"
                  }
                ],
                "id": 2972,
                "name": "Block",
                "src": "3211:134:5"
              }
            ],
            "id": 2973,
            "name": "FunctionDefinition",
            "src": "3085:260:5"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "externalTokenTransferFrom",
              "payable": false,
              "scope": 3065,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_externalToken",
                      "scope": 3006,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 10855,
                          "type": "contract StandardToken"
                        },
                        "id": 2974,
                        "name": "UserDefinedTypeName",
                        "src": "3705:13:5"
                      }
                    ],
                    "id": 2975,
                    "name": "VariableDeclaration",
                    "src": "3705:28:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_from",
                      "scope": 3006,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2976,
                        "name": "ElementaryTypeName",
                        "src": "3743:7:5"
                      }
                    ],
                    "id": 2977,
                    "name": "VariableDeclaration",
                    "src": "3743:13:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_to",
                      "scope": 3006,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2978,
                        "name": "ElementaryTypeName",
                        "src": "3766:7:5"
                      }
                    ],
                    "id": 2979,
                    "name": "VariableDeclaration",
                    "src": "3766:11:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_value",
                      "scope": 3006,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2980,
                        "name": "ElementaryTypeName",
                        "src": "3787:4:5"
                      }
                    ],
                    "id": 2981,
                    "name": "VariableDeclaration",
                    "src": "3787:11:5"
                  }
                ],
                "id": 2982,
                "name": "ParameterList",
                "src": "3695:109:5"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 3006,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 2985,
                        "name": "ElementaryTypeName",
                        "src": "3834:4:5"
                      }
                    ],
                    "id": 2986,
                    "name": "VariableDeclaration",
                    "src": "3834:4:5"
                  }
                ],
                "id": 2987,
                "name": "ParameterList",
                "src": "3833:6:5"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10275,
                      "type": "modifier ()",
                      "value": "onlyOwner"
                    },
                    "id": 2983,
                    "name": "Identifier",
                    "src": "3816:9:5"
                  }
                ],
                "id": 2984,
                "name": "ModifierInvocation",
                "src": "3816:9:5"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "transferFrom",
                              "referencedDeclaration": 10709,
                              "type": "function (address,address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2975,
                                  "type": "contract StandardToken",
                                  "value": "_externalToken"
                                },
                                "id": 2988,
                                "name": "Identifier",
                                "src": "3854:14:5"
                              }
                            ],
                            "id": 2990,
                            "name": "MemberAccess",
                            "src": "3854:27:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2977,
                              "type": "address",
                              "value": "_from"
                            },
                            "id": 2991,
                            "name": "Identifier",
                            "src": "3882:5:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2979,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 2992,
                            "name": "Identifier",
                            "src": "3889:3:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2981,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 2993,
                            "name": "Identifier",
                            "src": "3894:6:5"
                          }
                        ],
                        "id": 2994,
                        "name": "FunctionCall",
                        "src": "3854:47:5"
                      }
                    ],
                    "id": 2995,
                    "name": "ExpressionStatement",
                    "src": "3854:47:5"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$10855",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2829,
                              "type": "function (address,address,address,uint256)",
                              "value": "ExternalTokenTransferFrom"
                            },
                            "id": 2996,
                            "name": "Identifier",
                            "src": "3911:25:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2975,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 2997,
                            "name": "Identifier",
                            "src": "3937:14:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2977,
                              "type": "address",
                              "value": "_from"
                            },
                            "id": 2998,
                            "name": "Identifier",
                            "src": "3953:5:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2979,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 2999,
                            "name": "Identifier",
                            "src": "3960:3:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2981,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 3000,
                            "name": "Identifier",
                            "src": "3965:6:5"
                          }
                        ],
                        "id": 3001,
                        "name": "FunctionCall",
                        "src": "3911:61:5"
                      }
                    ],
                    "id": 3002,
                    "name": "ExpressionStatement",
                    "src": "3911:61:5"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 2987
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 3003,
                        "name": "Literal",
                        "src": "3989:4:5"
                      }
                    ],
                    "id": 3004,
                    "name": "Return",
                    "src": "3982:11:5"
                  }
                ],
                "id": 3005,
                "name": "Block",
                "src": "3844:156:5"
              }
            ],
            "id": 3006,
            "name": "FunctionDefinition",
            "src": "3661:339:5"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "externalTokenIncreaseApproval",
              "payable": false,
              "scope": 3065,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_externalToken",
                      "scope": 3035,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 10855,
                          "type": "contract StandardToken"
                        },
                        "id": 3007,
                        "name": "UserDefinedTypeName",
                        "src": "4415:13:5"
                      }
                    ],
                    "id": 3008,
                    "name": "VariableDeclaration",
                    "src": "4415:28:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_spender",
                      "scope": 3035,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 3009,
                        "name": "ElementaryTypeName",
                        "src": "4445:7:5"
                      }
                    ],
                    "id": 3010,
                    "name": "VariableDeclaration",
                    "src": "4445:16:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_addedValue",
                      "scope": 3035,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 3011,
                        "name": "ElementaryTypeName",
                        "src": "4463:4:5"
                      }
                    ],
                    "id": 3012,
                    "name": "VariableDeclaration",
                    "src": "4463:16:5"
                  }
                ],
                "id": 3013,
                "name": "ParameterList",
                "src": "4414:66:5"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 3035,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 3016,
                        "name": "ElementaryTypeName",
                        "src": "4510:4:5"
                      }
                    ],
                    "id": 3017,
                    "name": "VariableDeclaration",
                    "src": "4510:4:5"
                  }
                ],
                "id": 3018,
                "name": "ParameterList",
                "src": "4509:6:5"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10275,
                      "type": "modifier ()",
                      "value": "onlyOwner"
                    },
                    "id": 3014,
                    "name": "Identifier",
                    "src": "4492:9:5"
                  }
                ],
                "id": 3015,
                "name": "ModifierInvocation",
                "src": "4492:9:5"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "increaseApproval",
                              "referencedDeclaration": 10794,
                              "type": "function (address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 3008,
                                  "type": "contract StandardToken",
                                  "value": "_externalToken"
                                },
                                "id": 3019,
                                "name": "Identifier",
                                "src": "4530:14:5"
                              }
                            ],
                            "id": 3021,
                            "name": "MemberAccess",
                            "src": "4530:31:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3010,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 3022,
                            "name": "Identifier",
                            "src": "4562:8:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3012,
                              "type": "uint256",
                              "value": "_addedValue"
                            },
                            "id": 3023,
                            "name": "Identifier",
                            "src": "4572:11:5"
                          }
                        ],
                        "id": 3024,
                        "name": "FunctionCall",
                        "src": "4530:54:5"
                      }
                    ],
                    "id": 3025,
                    "name": "ExpressionStatement",
                    "src": "4530:54:5"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$10855",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2837,
                              "type": "function (contract StandardToken,address,uint256)",
                              "value": "ExternalTokenIncreaseApproval"
                            },
                            "id": 3026,
                            "name": "Identifier",
                            "src": "4594:29:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3008,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 3027,
                            "name": "Identifier",
                            "src": "4624:14:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3010,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 3028,
                            "name": "Identifier",
                            "src": "4640:8:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3012,
                              "type": "uint256",
                              "value": "_addedValue"
                            },
                            "id": 3029,
                            "name": "Identifier",
                            "src": "4650:11:5"
                          }
                        ],
                        "id": 3030,
                        "name": "FunctionCall",
                        "src": "4594:68:5"
                      }
                    ],
                    "id": 3031,
                    "name": "ExpressionStatement",
                    "src": "4594:68:5"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 3018
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 3032,
                        "name": "Literal",
                        "src": "4679:4:5"
                      }
                    ],
                    "id": 3033,
                    "name": "Return",
                    "src": "4672:11:5"
                  }
                ],
                "id": 3034,
                "name": "Block",
                "src": "4520:170:5"
              }
            ],
            "id": 3035,
            "name": "FunctionDefinition",
            "src": "4376:314:5"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "externalTokenDecreaseApproval",
              "payable": false,
              "scope": 3065,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_externalToken",
                      "scope": 3064,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 10855,
                          "type": "contract StandardToken"
                        },
                        "id": 3036,
                        "name": "UserDefinedTypeName",
                        "src": "5110:13:5"
                      }
                    ],
                    "id": 3037,
                    "name": "VariableDeclaration",
                    "src": "5110:28:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_spender",
                      "scope": 3064,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 3038,
                        "name": "ElementaryTypeName",
                        "src": "5140:7:5"
                      }
                    ],
                    "id": 3039,
                    "name": "VariableDeclaration",
                    "src": "5140:16:5"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_subtractedValue",
                      "scope": 3064,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 3040,
                        "name": "ElementaryTypeName",
                        "src": "5158:4:5"
                      }
                    ],
                    "id": 3041,
                    "name": "VariableDeclaration",
                    "src": "5158:21:5"
                  }
                ],
                "id": 3042,
                "name": "ParameterList",
                "src": "5109:72:5"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 3064,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 3045,
                        "name": "ElementaryTypeName",
                        "src": "5211:4:5"
                      }
                    ],
                    "id": 3046,
                    "name": "VariableDeclaration",
                    "src": "5211:4:5"
                  }
                ],
                "id": 3047,
                "name": "ParameterList",
                "src": "5210:6:5"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10275,
                      "type": "modifier ()",
                      "value": "onlyOwner"
                    },
                    "id": 3043,
                    "name": "Identifier",
                    "src": "5193:9:5"
                  }
                ],
                "id": 3044,
                "name": "ModifierInvocation",
                "src": "5193:9:5"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "decreaseApproval",
                              "referencedDeclaration": 10854,
                              "type": "function (address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 3037,
                                  "type": "contract StandardToken",
                                  "value": "_externalToken"
                                },
                                "id": 3048,
                                "name": "Identifier",
                                "src": "5231:14:5"
                              }
                            ],
                            "id": 3050,
                            "name": "MemberAccess",
                            "src": "5231:31:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3039,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 3051,
                            "name": "Identifier",
                            "src": "5263:8:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3041,
                              "type": "uint256",
                              "value": "_subtractedValue"
                            },
                            "id": 3052,
                            "name": "Identifier",
                            "src": "5273:16:5"
                          }
                        ],
                        "id": 3053,
                        "name": "FunctionCall",
                        "src": "5231:59:5"
                      }
                    ],
                    "id": 3054,
                    "name": "ExpressionStatement",
                    "src": "5231:59:5"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$10855",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2845,
                              "type": "function (contract StandardToken,address,uint256)",
                              "value": "ExternalTokenDecreaseApproval"
                            },
                            "id": 3055,
                            "name": "Identifier",
                            "src": "5300:29:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3037,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 3056,
                            "name": "Identifier",
                            "src": "5330:14:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3039,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 3057,
                            "name": "Identifier",
                            "src": "5345:8:5"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3041,
                              "type": "uint256",
                              "value": "_subtractedValue"
                            },
                            "id": 3058,
                            "name": "Identifier",
                            "src": "5355:16:5"
                          }
                        ],
                        "id": 3059,
                        "name": "FunctionCall",
                        "src": "5300:72:5"
                      }
                    ],
                    "id": 3060,
                    "name": "ExpressionStatement",
                    "src": "5300:72:5"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 3047
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 3061,
                        "name": "Literal",
                        "src": "5389:4:5"
                      }
                    ],
                    "id": 3062,
                    "name": "Return",
                    "src": "5382:11:5"
                  }
                ],
                "id": 3063,
                "name": "Block",
                "src": "5221:179:5"
              }
            ],
            "id": 3064,
            "name": "FunctionDefinition",
            "src": "5071:329:5"
          }
        ],
        "id": 3065,
        "name": "ContractDefinition",
        "src": "401:5002:5"
      }
    ],
    "id": 3066,
    "name": "SourceUnit",
    "src": "0:5404:5"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-01-25T13:15:04.327Z"
}