{
  "contractName": "EVMScriptRegistry",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "name": "_script",
          "type": "bytes"
        }
      ],
      "name": "getScriptExecutor",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_executorId",
          "type": "uint256"
        }
      ],
      "name": "disableScriptExecutor",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "EVMSCRIPT_REGISTRY_APP_ID",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "appId",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "initialize",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_executor",
          "type": "address"
        }
      ],
      "name": "addScriptExecutor",
      "outputs": [
        {
          "name": "id",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getInitializationBlock",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "EVMSCRIPT_REGISTRY_APP",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_sender",
          "type": "address"
        },
        {
          "name": "_role",
          "type": "bytes32"
        },
        {
          "name": "params",
          "type": "uint256[]"
        }
      ],
      "name": "canPerform",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "REGISTRY_MANAGER_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "kernel",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_script",
          "type": "bytes"
        }
      ],
      "name": "getExecutor",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "executors",
      "outputs": [
        {
          "name": "executor",
          "type": "address"
        },
        {
          "name": "enabled",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x6060604052341561000f57600080fd5b610f058061001e6000396000f3006060604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304bf2a7f146100ca5780635ca4d4bb1461016757806360b1e0571461018a57806380afdea8146101bb5780638129fc1c146101ec57806387a16f12146102015780638b3dd7491461024e5780639b3fdf4c14610277578063a1658fad146102a8578063bd8fde1c14610346578063d4aae0c414610377578063f92a79ff146103cc578063f97a05df14610469575b600080fd5b34156100d557600080fd5b610125600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506104d7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561017257600080fd5b6101886004808035906020019091905050610578565b005b341561019557600080fd5b61019d6105eb565b60405180826000191660001916815260200191505060405180910390f35b34156101c657600080fd5b6101ce610624565b60405180826000191660001916815260200191505060405180910390f35b34156101f757600080fd5b6101ff61062a565b005b341561020c57600080fd5b610238600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610704565b6040518082815260200191505060405180910390f35b341561025957600080fd5b610261610804565b6040518082815260200191505060405180910390f35b341561028257600080fd5b61028a61080e565b60405180826000191660001916815260200191505060405180910390f35b34156102b357600080fd5b61032c600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560001916906020019091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919050506108a9565b604051808215151515815260200191505060405180910390f35b341561035157600080fd5b610359610aa9565b60405180826000191660001916815260200191505060405180910390f35b341561038257600080fd5b61038a610ab0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103d757600080fd5b610427600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610ad5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561047457600080fd5b61048a6004808035906020019091905050610bdc565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390f35b60008060006104e584610c39565b63ffffffff169150600082148061050157506064805490508210155b1561050f5760009250610571565b60648281548110151561051e57fe5b906000526020600020900190508060000160149054906101000a900460ff1661054857600061056e565b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b92505b5050919050565b600180026105a6338260006040518059106105905750595b90808252806020026020018201604052506108a9565b15156105b157600080fd5b60006064838154811015156105c257fe5b906000526020600020900160000160146101000a81548160ff0219169083151502179055505050565b60405180807f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152506013019050604051809103902081565b60015481565b600060035414151561063b57600080fd5b610643610c4d565b606480548060010182816106579190610e3f565b916000526020600020900160006040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548160ff021916908315150217905550505050565b6000600180026107343382600060405180591061071e5750595b90808252806020026020018201604052506108a9565b151561073f57600080fd5b606480548060010182816107539190610e3f565b9160005260206000209001600060408051908101604052808773ffffffffffffffffffffffffffffffffffffffff16815260200160011515815250909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548160ff0219169083151502179055505050915050919050565b6000600354905090565b60405180807f61707000000000000000000000000000000000000000000000000000000000008152506003019050604051809103902060405180807f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081525060130190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b60006108b3610e6b565b600080845111156108cc57602084510290508391508082525b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610a9e57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fdef9106873088866000604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610a34578082015181840152602081019050610a19565b50505050905090810190601f168015610a615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610a8257600080fd5b6102c65a03f11515610a9357600080fd5b505050604051805190505b925050509392505050565b6001800281565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610adf610c6e565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b6f578082015181840152602081019050610b54565b50505050905090810190601f168015610b9c5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610bba57600080fd5b6102c65a03f11515610bcb57600080fd5b505050604051805190509050919050565b606481815481101515610beb57fe5b90600052602060002090016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460ff16905082565b6000610c46826000610dcc565b9050919050565b6000600354141515610c5e57600080fd5b610c66610e26565b600381905550565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342c71f1d60405180807f61707000000000000000000000000000000000000000000000000000000000008152506003019050604051809103902060405180807f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152506013019050604051809103902060405180836000191660001916815260200182600019166000191681526020019250505060405180910390206000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1515610da857600080fd5b6102c65a03f11515610db957600080fd5b5050506040518051905090508091505090565b600080610dd98484610e2e565b90507c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160491505092915050565b600043905090565b600081602001830151905092915050565b815481835581811511610e6657818360005260206000209182019101610e659190610e7f565b5b505050565b602060405190810160405280600081525090565b610ed691905b80821115610ed257600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a81549060ff021916905550600101610e85565b5090565b905600a165627a7a723058209e35f4df648d02183ed4fb2dff34a7e6a7ac43f54a326c02c12bc7d1460f15100029",
  "deployedBytecode": "0x6060604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304bf2a7f146100ca5780635ca4d4bb1461016757806360b1e0571461018a57806380afdea8146101bb5780638129fc1c146101ec57806387a16f12146102015780638b3dd7491461024e5780639b3fdf4c14610277578063a1658fad146102a8578063bd8fde1c14610346578063d4aae0c414610377578063f92a79ff146103cc578063f97a05df14610469575b600080fd5b34156100d557600080fd5b610125600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506104d7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561017257600080fd5b6101886004808035906020019091905050610578565b005b341561019557600080fd5b61019d6105eb565b60405180826000191660001916815260200191505060405180910390f35b34156101c657600080fd5b6101ce610624565b60405180826000191660001916815260200191505060405180910390f35b34156101f757600080fd5b6101ff61062a565b005b341561020c57600080fd5b610238600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610704565b6040518082815260200191505060405180910390f35b341561025957600080fd5b610261610804565b6040518082815260200191505060405180910390f35b341561028257600080fd5b61028a61080e565b60405180826000191660001916815260200191505060405180910390f35b34156102b357600080fd5b61032c600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560001916906020019091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919050506108a9565b604051808215151515815260200191505060405180910390f35b341561035157600080fd5b610359610aa9565b60405180826000191660001916815260200191505060405180910390f35b341561038257600080fd5b61038a610ab0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103d757600080fd5b610427600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610ad5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561047457600080fd5b61048a6004808035906020019091905050610bdc565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390f35b60008060006104e584610c39565b63ffffffff169150600082148061050157506064805490508210155b1561050f5760009250610571565b60648281548110151561051e57fe5b906000526020600020900190508060000160149054906101000a900460ff1661054857600061056e565b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b92505b5050919050565b600180026105a6338260006040518059106105905750595b90808252806020026020018201604052506108a9565b15156105b157600080fd5b60006064838154811015156105c257fe5b906000526020600020900160000160146101000a81548160ff0219169083151502179055505050565b60405180807f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152506013019050604051809103902081565b60015481565b600060035414151561063b57600080fd5b610643610c4d565b606480548060010182816106579190610e3f565b916000526020600020900160006040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548160ff021916908315150217905550505050565b6000600180026107343382600060405180591061071e5750595b90808252806020026020018201604052506108a9565b151561073f57600080fd5b606480548060010182816107539190610e3f565b9160005260206000209001600060408051908101604052808773ffffffffffffffffffffffffffffffffffffffff16815260200160011515815250909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548160ff0219169083151502179055505050915050919050565b6000600354905090565b60405180807f61707000000000000000000000000000000000000000000000000000000000008152506003019050604051809103902060405180807f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081525060130190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b60006108b3610e6b565b600080845111156108cc57602084510290508391508082525b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610a9e57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fdef9106873088866000604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610a34578082015181840152602081019050610a19565b50505050905090810190601f168015610a615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610a8257600080fd5b6102c65a03f11515610a9357600080fd5b505050604051805190505b925050509392505050565b6001800281565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610adf610c6e565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b6f578082015181840152602081019050610b54565b50505050905090810190601f168015610b9c5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610bba57600080fd5b6102c65a03f11515610bcb57600080fd5b505050604051805190509050919050565b606481815481101515610beb57fe5b90600052602060002090016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460ff16905082565b6000610c46826000610dcc565b9050919050565b6000600354141515610c5e57600080fd5b610c66610e26565b600381905550565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342c71f1d60405180807f61707000000000000000000000000000000000000000000000000000000000008152506003019050604051809103902060405180807f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152506013019050604051809103902060405180836000191660001916815260200182600019166000191681526020019250505060405180910390206000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1515610da857600080fd5b6102c65a03f11515610db957600080fd5b5050506040518051905090508091505090565b600080610dd98484610e2e565b90507c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160491505092915050565b600043905090565b600081602001830151905092915050565b815481835581811511610e6657818360005260206000209182019101610e659190610e7f565b5b505050565b602060405190810160405280600081525090565b610ed691905b80821115610ed257600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a81549060ff021916905550600101610e85565b5090565b905600a165627a7a723058209e35f4df648d02183ed4fb2dff34a7e6a7ac43f54a326c02c12bc7d1460f15100029",
  "sourceMap": "160:1236:28:-;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "160:1236:28:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1068:326;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;918:144;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;551:184:28;;;;;;;;;;;;;;741:171;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;269:107:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;158:103:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;506:494:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;365:58:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;86:21:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;512:32:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1068:326;1131:7;1150:10;1284:27;1163:19;:7;:17;:19::i;:::-;1150:32;;;;1203:1;1197:2;:7;:33;;;;1214:9;:16;;;;1208:2;:22;;1197:33;1193:81;;;1261:1;1246:17;;;;1193:81;1314:9;1324:2;1314:13;;;;;;;;;;;;;;;;;;1284:43;;1344:5;:13;;;;;;;;;;;;:43;;1385:1;1344:43;;;1360:5;:14;;;;;;;;;;;;1344:43;1337:50;;1068:326;;;;;;:::o;918:144::-;421:1;413:10;;306:47:20;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1050:5:28;1017:9;1027:11;1017:22;;;;;;;;;;;;;;;;;;:30;;;:38;;;;;;;;;;;;;;;;;;918:144;;:::o;68:84:31:-;120:32;;;;;;;;;;;;;;;;;;;68:84;:::o;113:20:19:-;;;;:::o;551:184:28:-;163:1:25;140:19;;:24;132:33;;;;;;;;599:13:28;:11;:13::i;:::-;680:9;:48;;;;;;;;;;;:::i;:::-;;;;;;;;;;695:32;;;;;;;;;717:1;695:32;;;;;;721:5;695:32;;;;;680:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;551:184::o;741:171::-;833:7;421:1;413:10;;306:47:20;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;859:9:28;:46;;;;;;;;;;;:::i;:::-;;;;;;;;;;874:30;;;;;;;;;888:9;874:30;;;;;;899:4;874:30;;;;;859:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;852:53;;741:171;;;;:::o;269:107:25:-;324:7;350:19;;343:26;;269:107;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:20:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;759:2;743:6;:13;:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;932:1;921:6;;;;;;;;;;;913:20;;;:80;;;;937:6;;;;;;;;;;;:20;;;958:7;975:4;982:5;989:3;937:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:20;906:87;;506:494;;;;;;;:::o;365:58:28:-;421:1;413:10;;365:58;:::o;86:21:19:-;;;;;;;;;;;;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;:39;;;977:7;937:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;911:75:29;;824:169;;;:::o;512:32:28:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2452:109:32:-;2509:6;2534:20;2543:7;2552:1;2534:8;:20::i;:::-;2527:27;;2452:109;;;:::o;487:96:25:-;163:1;140:19;;:24;132:33;;;;;;;;560:16;:14;:16::i;:::-;538:19;:38;;;;487:96::o;1021:200:29:-;1075:18;1105:20;1128:6;;;;;;;;;;;:13;;;217:16:31;;;;;;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1105:60;;1201:12;1175:39;;1021:200;;:::o;3092:355:32:-;3165:13;3190:12;3205:27;3215:5;3222:9;3205;:27::i;:::-;3190:42;;3371:59;3290:66;3284:4;3280:3;3276;3266:165;;3252:189;;;;;:::o;767:94:25:-;816:7;842:12;835:19;;767:94;:::o;2567:188:32:-;2641:14;2727:9;2721:4;2717:3;2710:5;2706:3;2700:5;2690:49;;2676:73;;;;:::o;160:1236:28:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity 0.4.18;\n\nimport \"./ScriptHelpers.sol\";\nimport \"./IEVMScriptExecutor.sol\";\nimport \"./IEVMScriptRegistry.sol\";\n\nimport \"../apps/AragonApp.sol\";\n\n\ncontract EVMScriptRegistry is IEVMScriptRegistry, EVMScriptRegistryConstants, AragonApp {\n    using ScriptHelpers for bytes;\n\n    // WARN: Manager can censor all votes and the like happening in an org\n    bytes32 constant public REGISTRY_MANAGER_ROLE = bytes32(1);\n\n    struct ExecutorEntry {\n        address executor;\n        bool enabled;\n    }\n\n    ExecutorEntry[] public executors;\n\n    function initialize() onlyInit public {\n        initialized();\n        // Create empty record to begin executor IDs at 1\n        executors.push(ExecutorEntry(address(0), false));\n    }\n\n    function addScriptExecutor(address _executor) external auth(REGISTRY_MANAGER_ROLE) returns (uint id) {\n        return executors.push(ExecutorEntry(_executor, true));\n    }\n\n    function disableScriptExecutor(uint256 _executorId) external auth(REGISTRY_MANAGER_ROLE) {\n        executors[_executorId].enabled = false;\n    }\n\n    function getScriptExecutor(bytes _script) public view returns (address) {\n        uint256 id = _script.getSpecId();\n\n        if (id == 0 || id >= executors.length) {\n            return address(0);\n        }\n\n        ExecutorEntry storage entry = executors[id];\n        return entry.enabled ? entry.executor : address(0);\n    }\n}\n",
  "sourcePath": "@aragon/os/contracts/evmscript/EVMScriptRegistry.sol",
  "ast": {
    "attributes": {
      "absolutePath": "@aragon/os/contracts/evmscript/EVMScriptRegistry.sol",
      "exportedSymbols": {
        "EVMScriptRegistry": [
          7710
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "0.4",
            ".18"
          ]
        },
        "id": 7585,
        "name": "PragmaDirective",
        "src": "0:23:28"
      },
      {
        "attributes": {
          "SourceUnit": 8269,
          "absolutePath": "@aragon/os/contracts/evmscript/ScriptHelpers.sol",
          "file": "./ScriptHelpers.sol",
          "scope": 7711,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 7586,
        "name": "ImportDirective",
        "src": "25:29:28"
      },
      {
        "attributes": {
          "SourceUnit": 7862,
          "absolutePath": "@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol",
          "file": "./IEVMScriptExecutor.sol",
          "scope": 7711,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 7587,
        "name": "ImportDirective",
        "src": "55:34:28"
      },
      {
        "attributes": {
          "SourceUnit": 7898,
          "absolutePath": "@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol",
          "file": "./IEVMScriptRegistry.sol",
          "scope": 7711,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 7588,
        "name": "ImportDirective",
        "src": "90:34:28"
      },
      {
        "attributes": {
          "SourceUnit": 6969,
          "absolutePath": "@aragon/os/contracts/apps/AragonApp.sol",
          "file": "../apps/AragonApp.sol",
          "scope": 7711,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 7589,
        "name": "ImportDirective",
        "src": "126:31:28"
      },
      {
        "attributes": {
          "contractDependencies": [
            5905,
            6870,
            6968,
            7261,
            7846,
            7877,
            7897
          ],
          "contractKind": "contract",
          "documentation": null,
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            7710,
            6968,
            7846,
            7877,
            5905,
            7261,
            6870,
            7897
          ],
          "name": "EVMScriptRegistry",
          "scope": 7711
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "IEVMScriptRegistry",
                  "referencedDeclaration": 7897,
                  "type": "contract IEVMScriptRegistry"
                },
                "id": 7590,
                "name": "UserDefinedTypeName",
                "src": "190:18:28"
              }
            ],
            "id": 7591,
            "name": "InheritanceSpecifier",
            "src": "190:18:28"
          },
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "EVMScriptRegistryConstants",
                  "referencedDeclaration": 7877,
                  "type": "contract EVMScriptRegistryConstants"
                },
                "id": 7592,
                "name": "UserDefinedTypeName",
                "src": "210:26:28"
              }
            ],
            "id": 7593,
            "name": "InheritanceSpecifier",
            "src": "210:26:28"
          },
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "AragonApp",
                  "referencedDeclaration": 6968,
                  "type": "contract AragonApp"
                },
                "id": 7594,
                "name": "UserDefinedTypeName",
                "src": "238:9:28"
              }
            ],
            "id": 7595,
            "name": "InheritanceSpecifier",
            "src": "238:9:28"
          },
          {
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "ScriptHelpers",
                  "referencedDeclaration": 8268,
                  "type": "library ScriptHelpers"
                },
                "id": 7596,
                "name": "UserDefinedTypeName",
                "src": "260:13:28"
              },
              {
                "attributes": {
                  "name": "bytes",
                  "type": "bytes storage pointer"
                },
                "id": 7597,
                "name": "ElementaryTypeName",
                "src": "278:5:28"
              }
            ],
            "id": 7598,
            "name": "UsingForDirective",
            "src": "254:30:28"
          },
          {
            "attributes": {
              "constant": true,
              "name": "REGISTRY_MANAGER_ROLE",
              "scope": 7710,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bytes32",
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "bytes32",
                  "type": "bytes32"
                },
                "id": 7599,
                "name": "ElementaryTypeName",
                "src": "365:7:28"
              },
              {
                "attributes": {
                  "argumentTypes": null,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "isStructConstructorCall": false,
                  "lValueRequested": false,
                  "names": [
                    null
                  ],
                  "type": "bytes32",
                  "type_conversion": true
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "type": "type(bytes32)",
                      "value": "bytes32"
                    },
                    "id": 7600,
                    "name": "ElementaryTypeNameExpression",
                    "src": "413:7:28"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "31",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "number",
                      "type": "int_const 1",
                      "value": "1"
                    },
                    "id": 7601,
                    "name": "Literal",
                    "src": "421:1:28"
                  }
                ],
                "id": 7602,
                "name": "FunctionCall",
                "src": "413:10:28"
              }
            ],
            "id": 7603,
            "name": "VariableDeclaration",
            "src": "365:58:28"
          },
          {
            "attributes": {
              "canonicalName": "EVMScriptRegistry.ExecutorEntry",
              "name": "ExecutorEntry",
              "scope": 7710,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "executor",
                  "scope": 7608,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "address",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 7604,
                    "name": "ElementaryTypeName",
                    "src": "461:7:28"
                  }
                ],
                "id": 7605,
                "name": "VariableDeclaration",
                "src": "461:16:28"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "enabled",
                  "scope": 7608,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bool",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bool",
                      "type": "bool"
                    },
                    "id": 7606,
                    "name": "ElementaryTypeName",
                    "src": "487:4:28"
                  }
                ],
                "id": 7607,
                "name": "VariableDeclaration",
                "src": "487:12:28"
              }
            ],
            "id": 7608,
            "name": "StructDefinition",
            "src": "430:76:28"
          },
          {
            "attributes": {
              "constant": false,
              "name": "executors",
              "scope": 7710,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "struct EVMScriptRegistry.ExecutorEntry storage ref[] storage ref",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "length": null,
                  "type": "struct EVMScriptRegistry.ExecutorEntry storage ref[] storage pointer"
                },
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "ExecutorEntry",
                      "referencedDeclaration": 7608,
                      "type": "struct EVMScriptRegistry.ExecutorEntry storage pointer"
                    },
                    "id": 7609,
                    "name": "UserDefinedTypeName",
                    "src": "512:13:28"
                  }
                ],
                "id": 7610,
                "name": "ArrayTypeName",
                "src": "512:15:28"
              }
            ],
            "id": 7611,
            "name": "VariableDeclaration",
            "src": "512:32:28"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "initialize",
              "payable": false,
              "scope": 7710,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 7612,
                "name": "ParameterList",
                "src": "570:2:28"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 7615,
                "name": "ParameterList",
                "src": "589:0:28"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 7232,
                      "type": "modifier ()",
                      "value": "onlyInit"
                    },
                    "id": 7613,
                    "name": "Identifier",
                    "src": "573:8:28"
                  }
                ],
                "id": 7614,
                "name": "ModifierInvocation",
                "src": "573:8:28"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "arguments": [
                            null
                          ],
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                null
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7251,
                              "type": "function ()",
                              "value": "initialized"
                            },
                            "id": 7616,
                            "name": "Identifier",
                            "src": "599:11:28"
                          }
                        ],
                        "id": 7617,
                        "name": "FunctionCall",
                        "src": "599:13:28"
                      }
                    ],
                    "id": 7618,
                    "name": "ExpressionStatement",
                    "src": "599:13:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "uint256",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_ExecutorEntry_$7608_memory",
                                  "typeString": "struct EVMScriptRegistry.ExecutorEntry memory"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "push",
                              "referencedDeclaration": null,
                              "type": "function (struct EVMScriptRegistry.ExecutorEntry storage ref) returns (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7611,
                                  "type": "struct EVMScriptRegistry.ExecutorEntry storage ref[] storage ref",
                                  "value": "executors"
                                },
                                "id": 7619,
                                "name": "Identifier",
                                "src": "680:9:28"
                              }
                            ],
                            "id": 7621,
                            "name": "MemberAccess",
                            "src": "680:14:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "isStructConstructorCall": true,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "struct EVMScriptRegistry.ExecutorEntry memory",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7608,
                                  "type": "type(struct EVMScriptRegistry.ExecutorEntry storage pointer)",
                                  "value": "ExecutorEntry"
                                },
                                "id": 7622,
                                "name": "Identifier",
                                "src": "695:13:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(address)",
                                      "value": "address"
                                    },
                                    "id": 7623,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "709:7:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 7624,
                                    "name": "Literal",
                                    "src": "717:1:28"
                                  }
                                ],
                                "id": 7625,
                                "name": "FunctionCall",
                                "src": "709:10:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "66616c7365",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "false"
                                },
                                "id": 7626,
                                "name": "Literal",
                                "src": "721:5:28"
                              }
                            ],
                            "id": 7627,
                            "name": "FunctionCall",
                            "src": "695:32:28"
                          }
                        ],
                        "id": 7628,
                        "name": "FunctionCall",
                        "src": "680:48:28"
                      }
                    ],
                    "id": 7629,
                    "name": "ExpressionStatement",
                    "src": "680:48:28"
                  }
                ],
                "id": 7630,
                "name": "Block",
                "src": "589:146:28"
              }
            ],
            "id": 7631,
            "name": "FunctionDefinition",
            "src": "551:184:28"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "addScriptExecutor",
              "payable": false,
              "scope": 7710,
              "stateMutability": "nonpayable",
              "superFunction": 7884,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_executor",
                      "scope": 7650,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 7632,
                        "name": "ElementaryTypeName",
                        "src": "768:7:28"
                      }
                    ],
                    "id": 7633,
                    "name": "VariableDeclaration",
                    "src": "768:17:28"
                  }
                ],
                "id": 7634,
                "name": "ParameterList",
                "src": "767:19:28"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "id",
                      "scope": 7650,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 7638,
                        "name": "ElementaryTypeName",
                        "src": "833:4:28"
                      }
                    ],
                    "id": 7639,
                    "name": "VariableDeclaration",
                    "src": "833:7:28"
                  }
                ],
                "id": 7640,
                "name": "ParameterList",
                "src": "832:9:28"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6903,
                      "type": "modifier (bytes32)",
                      "value": "auth"
                    },
                    "id": 7635,
                    "name": "Identifier",
                    "src": "796:4:28"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 7603,
                      "type": "bytes32",
                      "value": "REGISTRY_MANAGER_ROLE"
                    },
                    "id": 7636,
                    "name": "Identifier",
                    "src": "801:21:28"
                  }
                ],
                "id": 7637,
                "name": "ModifierInvocation",
                "src": "796:27:28"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7640
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "uint256",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_ExecutorEntry_$7608_memory",
                                  "typeString": "struct EVMScriptRegistry.ExecutorEntry memory"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "push",
                              "referencedDeclaration": null,
                              "type": "function (struct EVMScriptRegistry.ExecutorEntry storage ref) returns (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7611,
                                  "type": "struct EVMScriptRegistry.ExecutorEntry storage ref[] storage ref",
                                  "value": "executors"
                                },
                                "id": 7641,
                                "name": "Identifier",
                                "src": "859:9:28"
                              }
                            ],
                            "id": 7642,
                            "name": "MemberAccess",
                            "src": "859:14:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": true,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "struct EVMScriptRegistry.ExecutorEntry memory",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7608,
                                  "type": "type(struct EVMScriptRegistry.ExecutorEntry storage pointer)",
                                  "value": "ExecutorEntry"
                                },
                                "id": 7643,
                                "name": "Identifier",
                                "src": "874:13:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7633,
                                  "type": "address",
                                  "value": "_executor"
                                },
                                "id": 7644,
                                "name": "Identifier",
                                "src": "888:9:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "74727565",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "true"
                                },
                                "id": 7645,
                                "name": "Literal",
                                "src": "899:4:28"
                              }
                            ],
                            "id": 7646,
                            "name": "FunctionCall",
                            "src": "874:30:28"
                          }
                        ],
                        "id": 7647,
                        "name": "FunctionCall",
                        "src": "859:46:28"
                      }
                    ],
                    "id": 7648,
                    "name": "Return",
                    "src": "852:53:28"
                  }
                ],
                "id": 7649,
                "name": "Block",
                "src": "842:70:28"
              }
            ],
            "id": 7650,
            "name": "FunctionDefinition",
            "src": "741:171:28"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "disableScriptExecutor",
              "payable": false,
              "scope": 7710,
              "stateMutability": "nonpayable",
              "superFunction": 7889,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_executorId",
                      "scope": 7666,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7651,
                        "name": "ElementaryTypeName",
                        "src": "949:7:28"
                      }
                    ],
                    "id": 7652,
                    "name": "VariableDeclaration",
                    "src": "949:19:28"
                  }
                ],
                "id": 7653,
                "name": "ParameterList",
                "src": "948:21:28"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 7657,
                "name": "ParameterList",
                "src": "1007:0:28"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6903,
                      "type": "modifier (bytes32)",
                      "value": "auth"
                    },
                    "id": 7654,
                    "name": "Identifier",
                    "src": "979:4:28"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 7603,
                      "type": "bytes32",
                      "value": "REGISTRY_MANAGER_ROLE"
                    },
                    "id": 7655,
                    "name": "Identifier",
                    "src": "984:21:28"
                  }
                ],
                "id": 7656,
                "name": "ModifierInvocation",
                "src": "979:27:28"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "enabled",
                              "referencedDeclaration": 7607,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct EVMScriptRegistry.ExecutorEntry storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7611,
                                      "type": "struct EVMScriptRegistry.ExecutorEntry storage ref[] storage ref",
                                      "value": "executors"
                                    },
                                    "id": 7658,
                                    "name": "Identifier",
                                    "src": "1017:9:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7652,
                                      "type": "uint256",
                                      "value": "_executorId"
                                    },
                                    "id": 7659,
                                    "name": "Identifier",
                                    "src": "1027:11:28"
                                  }
                                ],
                                "id": 7660,
                                "name": "IndexAccess",
                                "src": "1017:22:28"
                              }
                            ],
                            "id": 7661,
                            "name": "MemberAccess",
                            "src": "1017:30:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "66616c7365",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "false"
                            },
                            "id": 7662,
                            "name": "Literal",
                            "src": "1050:5:28"
                          }
                        ],
                        "id": 7663,
                        "name": "Assignment",
                        "src": "1017:38:28"
                      }
                    ],
                    "id": 7664,
                    "name": "ExpressionStatement",
                    "src": "1017:38:28"
                  }
                ],
                "id": 7665,
                "name": "Block",
                "src": "1007:55:28"
              }
            ],
            "id": 7666,
            "name": "FunctionDefinition",
            "src": "918:144:28"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getScriptExecutor",
              "payable": false,
              "scope": 7710,
              "stateMutability": "view",
              "superFunction": 7896,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_script",
                      "scope": 7709,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes storage pointer"
                        },
                        "id": 7667,
                        "name": "ElementaryTypeName",
                        "src": "1095:5:28"
                      }
                    ],
                    "id": 7668,
                    "name": "VariableDeclaration",
                    "src": "1095:13:28"
                  }
                ],
                "id": 7669,
                "name": "ParameterList",
                "src": "1094:15:28"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 7709,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 7670,
                        "name": "ElementaryTypeName",
                        "src": "1131:7:28"
                      }
                    ],
                    "id": 7671,
                    "name": "VariableDeclaration",
                    "src": "1131:7:28"
                  }
                ],
                "id": 7672,
                "name": "ParameterList",
                "src": "1130:9:28"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        7674
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "id",
                          "scope": 7709,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 7673,
                            "name": "ElementaryTypeName",
                            "src": "1150:7:28"
                          }
                        ],
                        "id": 7674,
                        "name": "VariableDeclaration",
                        "src": "1150:10:28"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "arguments": [
                            null
                          ],
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "uint32",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "getSpecId",
                              "referencedDeclaration": 8102,
                              "type": "function (bytes memory) pure returns (uint32)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7668,
                                  "type": "bytes memory",
                                  "value": "_script"
                                },
                                "id": 7675,
                                "name": "Identifier",
                                "src": "1163:7:28"
                              }
                            ],
                            "id": 7676,
                            "name": "MemberAccess",
                            "src": "1163:17:28"
                          }
                        ],
                        "id": 7677,
                        "name": "FunctionCall",
                        "src": "1163:19:28"
                      }
                    ],
                    "id": 7678,
                    "name": "VariableDeclarationStatement",
                    "src": "1150:32:28"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "||",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7674,
                                  "type": "uint256",
                                  "value": "id"
                                },
                                "id": 7679,
                                "name": "Identifier",
                                "src": "1197:2:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 7680,
                                "name": "Literal",
                                "src": "1203:1:28"
                              }
                            ],
                            "id": 7681,
                            "name": "BinaryOperation",
                            "src": "1197:7:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7674,
                                  "type": "uint256",
                                  "value": "id"
                                },
                                "id": 7682,
                                "name": "Identifier",
                                "src": "1208:2:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "length",
                                  "referencedDeclaration": null,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7611,
                                      "type": "struct EVMScriptRegistry.ExecutorEntry storage ref[] storage ref",
                                      "value": "executors"
                                    },
                                    "id": 7683,
                                    "name": "Identifier",
                                    "src": "1214:9:28"
                                  }
                                ],
                                "id": 7684,
                                "name": "MemberAccess",
                                "src": "1214:16:28"
                              }
                            ],
                            "id": 7685,
                            "name": "BinaryOperation",
                            "src": "1208:22:28"
                          }
                        ],
                        "id": 7686,
                        "name": "BinaryOperation",
                        "src": "1197:33:28"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "functionReturnParameters": 7672
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(address)",
                                      "value": "address"
                                    },
                                    "id": 7687,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "1253:7:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 7688,
                                    "name": "Literal",
                                    "src": "1261:1:28"
                                  }
                                ],
                                "id": 7689,
                                "name": "FunctionCall",
                                "src": "1253:10:28"
                              }
                            ],
                            "id": 7690,
                            "name": "Return",
                            "src": "1246:17:28"
                          }
                        ],
                        "id": 7691,
                        "name": "Block",
                        "src": "1232:42:28"
                      }
                    ],
                    "id": 7692,
                    "name": "IfStatement",
                    "src": "1193:81:28"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        7694
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "entry",
                          "scope": 7709,
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "type": "struct EVMScriptRegistry.ExecutorEntry storage pointer",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "ExecutorEntry",
                              "referencedDeclaration": 7608,
                              "type": "struct EVMScriptRegistry.ExecutorEntry storage pointer"
                            },
                            "id": 7693,
                            "name": "UserDefinedTypeName",
                            "src": "1284:13:28"
                          }
                        ],
                        "id": 7694,
                        "name": "VariableDeclaration",
                        "src": "1284:27:28"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct EVMScriptRegistry.ExecutorEntry storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7611,
                              "type": "struct EVMScriptRegistry.ExecutorEntry storage ref[] storage ref",
                              "value": "executors"
                            },
                            "id": 7695,
                            "name": "Identifier",
                            "src": "1314:9:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7674,
                              "type": "uint256",
                              "value": "id"
                            },
                            "id": 7696,
                            "name": "Identifier",
                            "src": "1324:2:28"
                          }
                        ],
                        "id": 7697,
                        "name": "IndexAccess",
                        "src": "1314:13:28"
                      }
                    ],
                    "id": 7698,
                    "name": "VariableDeclarationStatement",
                    "src": "1284:43:28"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 7672
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "address"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "enabled",
                              "referencedDeclaration": 7607,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7694,
                                  "type": "struct EVMScriptRegistry.ExecutorEntry storage pointer",
                                  "value": "entry"
                                },
                                "id": 7699,
                                "name": "Identifier",
                                "src": "1344:5:28"
                              }
                            ],
                            "id": 7700,
                            "name": "MemberAccess",
                            "src": "1344:13:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "executor",
                              "referencedDeclaration": 7605,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7694,
                                  "type": "struct EVMScriptRegistry.ExecutorEntry storage pointer",
                                  "value": "entry"
                                },
                                "id": 7701,
                                "name": "Identifier",
                                "src": "1360:5:28"
                              }
                            ],
                            "id": 7702,
                            "name": "MemberAccess",
                            "src": "1360:14:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)",
                                  "value": "address"
                                },
                                "id": 7703,
                                "name": "ElementaryTypeNameExpression",
                                "src": "1377:7:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 7704,
                                "name": "Literal",
                                "src": "1385:1:28"
                              }
                            ],
                            "id": 7705,
                            "name": "FunctionCall",
                            "src": "1377:10:28"
                          }
                        ],
                        "id": 7706,
                        "name": "Conditional",
                        "src": "1344:43:28"
                      }
                    ],
                    "id": 7707,
                    "name": "Return",
                    "src": "1337:50:28"
                  }
                ],
                "id": 7708,
                "name": "Block",
                "src": "1140:254:28"
              }
            ],
            "id": 7709,
            "name": "FunctionDefinition",
            "src": "1068:326:28"
          }
        ],
        "id": 7710,
        "name": "ContractDefinition",
        "src": "160:1236:28"
      }
    ],
    "id": 7711,
    "name": "SourceUnit",
    "src": "0:1397:28"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-03-14T08:41:25.091Z"
}