{
  "contractName": "EVMScriptRegistry",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "name": "_interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_script",
          "type": "bytes"
        }
      ],
      "name": "getScriptExecutor",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "hasInitialized",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "REGISTRY_ADD_EXECUTOR_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_script",
          "type": "bytes"
        }
      ],
      "name": "getEVMScriptExecutor",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getRecoveryVault",
      "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": "token",
          "type": "address"
        }
      ],
      "name": "allowRecoverability",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "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": false,
      "inputs": [
        {
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "transferToVault",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "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": "getEVMScriptRegistry",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "REGISTRY_MANAGER_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_executorId",
          "type": "uint256"
        }
      ],
      "name": "enableScriptExecutor",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "kernel",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isPetrified",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "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"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "executorId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "executorAddress",
          "type": "address"
        }
      ],
      "name": "EnableExecutor",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "executorId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "executorAddress",
          "type": "address"
        }
      ],
      "name": "DisableExecutor",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "executor",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "script",
          "type": "bytes"
        },
        {
          "indexed": false,
          "name": "input",
          "type": "bytes"
        },
        {
          "indexed": false,
          "name": "returnData",
          "type": "bytes"
        }
      ],
      "name": "ScriptResult",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "vault",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "RecoverToVault",
      "type": "event"
    }
  ],
  "bytecode": "0x6080604052620000176401000000006200001d810204565b6200023b565b6200003064010000000062000125810204565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a45440000000000000000602082015290156200010c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620000d0578181015183820152602001620000b6565b50505050905090810190601f168015620000fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506200012360001964010000000062000154810204565b565b60006200014f60008051602062001d34833981519152640100000000620016de6200023382021704565b905090565b6200016764010000000062000125810204565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a454400000000000000006020820152901562000206576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181518152602001915080519060200190808383600083811015620000d0578181015183820152602001620000b6565b506200023060008051602062001d348339815191528264010000000062001a326200023782021704565b50565b5490565b9055565b611ae9806200024b6000396000f3006080604052600436106101115763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a7811461011657806304bf2a7f146101645780630803fac0146101e657806319f3d10f146101fb5780632914b9bd1461022257806332f0a3b51461027b5780635ca4d4bb146102905780637e7db6e1146102aa57806380afdea8146102d85780638129fc1c146102ed57806387a16f12146103025780638b3dd749146103305780639d4941d814610345578063a1658fad14610373578063a479e508146103e7578063bd8fde1c146103fc578063cff606a014610411578063d4aae0c414610429578063de4796ed1461043e578063f97a05df14610453575b600080fd5b34801561012257600080fd5b506101507fffffffff000000000000000000000000000000000000000000000000000000006004351661049b565b604080519115158252519081900360200190f35b34801561017057600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101bd9436949293602493928401919081908401838280828437509497506104f89650505050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156101f257600080fd5b5061015061064a565b34801561020757600080fd5b50610210610673565b60408051918252519081900360200190f35b34801561022e57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101bd9436949293602493928401919081908401838280828437509497506106979650505050505050565b34801561028757600080fd5b506101bd6107a3565b34801561029c57600080fd5b506102a8600435610841565b005b3480156102b657600080fd5b5061015073ffffffffffffffffffffffffffffffffffffffff60043516610a55565b3480156102e457600080fd5b50610210610a5b565b3480156102f957600080fd5b506102a8610a8b565b34801561030e57600080fd5b5061021073ffffffffffffffffffffffffffffffffffffffff60043516610b3f565b34801561033c57600080fd5b50610210610d03565b34801561035157600080fd5b506102a873ffffffffffffffffffffffffffffffffffffffff60043516610d2e565b34801561037f57600080fd5b50604080516020600460443581810135838102808601850190965280855261015095833573ffffffffffffffffffffffffffffffffffffffff169560248035963696956064959394920192918291850190849080828437509497506110509650505050505050565b3480156103f357600080fd5b506101bd6111e0565b34801561040857600080fd5b506102106112a2565b34801561041d57600080fd5b506102a86004356112c6565b34801561043557600080fd5b506101bd6115a1565b34801561044a57600080fd5b506101506115cc565b34801561045f57600080fd5b5061046b6004356115fd565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835290151560208301528051918290030190f35b60006104a682611642565b806104f257507fffffffff0000000000000000000000000000000000000000000000000000000082167f54053e6c00000000000000000000000000000000000000000000000000000000145b92915050565b60008060006004845110156040805190810160405280601e81526020017f45564d5245475f5343524950545f4c454e4754485f544f4f5f53484f525400008152509015156105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156105a357818101518382015260200161058b565b50505050905090810190601f1680156105d05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506105e88461168c565b63ffffffff1660008181526001602052604090208054919350915074010000000000000000000000000000000000000000900460ff16610629576000610642565b805473ffffffffffffffffffffffffffffffffffffffff165b949350505050565b600080610655610d03565b9050801580159061066d57508061066a611699565b10155b91505090565b7fc4e90f38eea8c4212a009ca7b8947943ba4d4a58d19b683417f65291d1cd9ed281565b60006106a16111e0565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561072557818101518382015260200161070d565b50505050905090810190601f1680156107525780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561077157600080fd5b505af1158015610785573d6000803e3d6000fd5b505050506040513d602081101561079b57600080fd5b505192915050565b60006107ad6115a1565b73ffffffffffffffffffffffffffffffffffffffff166332f0a3b56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561081057600080fd5b505af1158015610824573d6000803e3d6000fd5b505050506040513d602081101561083a57600080fd5b5051905090565b60007ff7a450ef335e1892cb42c8ca72e7242359d7711924b75db5717410da3f614aa361086d8361169d565b610878338383611050565b60408051808201909152600f81527f4150505f415554485f4641494c454400000000000000000000000000000000006020820152901515610915576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b5060008481526001602090815260409182902080548351808501909452601884527f45564d5245475f4558454355544f525f44495341424c4544000000000000000092840192909252945074010000000000000000000000000000000000000000900460ff1615156109e3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b5082547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff8116845560405173ffffffffffffffffffffffffffffffffffffffff9091169085907fc13cd9238f8ab1e5ab1f95cde77e89288fe5c328d04739adffd57b144b408fd190600090a350505050565b50600190565b6000610a867fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b6116de565b905090565b610a93610d03565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a4544000000000000000060208201529015610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b50610b386116e2565b6001600055565b6040805160008082526020820190925281907fc4e90f38eea8c4212a009ca7b8947943ba4d4a58d19b683417f65291d1cd9ed290610b809033908390611050565b60408051808201909152600f81527f4150505f415554485f4641494c454400000000000000000000000000000000006020820152901515610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b50600080546001808201835560408051808201825273ffffffffffffffffffffffffffffffffffffffff808a168083526020808401868152878952959052838720925183549551151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff919093167fffffffffffffffffffffffff00000000000000000000000000000000000000009096169590951794909416179055519194509184917f7697fa3288629310075a63816e294207c84f3cfc18ccf8e18eb917ec0bb566999190a35092915050565b6000610a867febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e6116de565b6000806000610d3c84610a55565b60408051808201909152601281527f5245434f5645525f444953414c4c4f57454400000000000000000000000000006020820152901515610dd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b50610de26107a3565b9250610ded836117c5565b60408051808201909152601a81527f5245434f5645525f5641554c545f4e4f545f434f4e54524143540000000000006020820152901515610e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b5073ffffffffffffffffffffffffffffffffffffffff84161515610ef5576040513031925073ffffffffffffffffffffffffffffffffffffffff84169083156108fc029084906000818181858888f19350505050158015610eef573d6000803e3d6000fd5b50610fe5565b5082610f1d73ffffffffffffffffffffffffffffffffffffffff82163063ffffffff6117ff16565b9150610f4673ffffffffffffffffffffffffffffffffffffffff8216848463ffffffff61193816565b60408051808201909152601d81527f5245434f5645525f544f4b454e5f5452414e534645525f4641494c45440000006020820152901515610fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b505b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f596caf56044b55fb8c4ca640089bbc2b63cae3e978b851f5745cbb7c5b288e02846040518082815260200191505060405180910390a350505050565b60008061105b61064a565b151561106a57600091506111d8565b6110726115a1565b905073ffffffffffffffffffffffffffffffffffffffff8116151561109a57600091506111d8565b8073ffffffffffffffffffffffffffffffffffffffff1663fdef91068630876110c2886119d0565b6040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff808616600483019081529085166024830152604482018490526080606483019081528351608484015283519192909160a490910190602085019080838360005b8381101561115a578181015183820152602001611142565b50505050905090810190601f1680156111875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156111a957600080fd5b505af11580156111bd573d6000803e3d6000fd5b505050506040513d60208110156111d357600080fd5b505191505b509392505050565b6000806111eb6115a1565b604080517fbe00bbd80000000000000000000000000000000000000000000000000000000081527fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb60048201527fddbcfd564f642ab5627cf68b9b7d374fb4f8a36e941a75d89c87998cef03bd616024820152905173ffffffffffffffffffffffffffffffffffffffff929092169163be00bbd8916044808201926020929091908290030181600087803b15801561077157600080fd5b7ff7a450ef335e1892cb42c8ca72e7242359d7711924b75db5717410da3f614aa381565b60007ff7a450ef335e1892cb42c8ca72e7242359d7711924b75db5717410da3f614aa36112f28361169d565b6112fd338383611050565b60408051808201909152600f81527f4150505f415554485f4641494c45440000000000000000000000000000000000602082015290151561139a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b50836000811180156113ad575060005481105b60408051808201909152601a81527f45564d5245475f494e4558495354454e545f4558454355544f52000000000000602082015290151561144a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b5060008581526001602090815260409182902080548351808501909452601784527f45564d5245475f4558454355544f525f454e41424c454400000000000000000092840192909252955074010000000000000000000000000000000000000000900460ff1615611517576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b5083547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001780855560405173ffffffffffffffffffffffffffffffffffffffff9091169086907f7697fa3288629310075a63816e294207c84f3cfc18ccf8e18eb917ec0bb5669990600090a35050505050565b6000610a867f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b6116de565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6115f7610d03565b14905090565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff81169074010000000000000000000000000000000000000000900460ff1682565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60006104f28260006119da565b4390565b60408051600180825281830190925260609160208083019080388339019050509050818160008151811015156116cf57fe5b60209081029091010152919050565b5490565b6116ea610d03565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a4544000000000000000060208201529015611786576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b506117bf611792611699565b7febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e9063ffffffff611a3216565b565b5490565b60008073ffffffffffffffffffffffffffffffffffffffff831615156117ee57600091506117f9565b823b90506000811191505b50919050565b6040805173ffffffffffffffffffffffffffffffffffffffff83166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f70a0823100000000000000000000000000000000000000000000000000000000179052600090818061188c8684611a36565b60408051808201909152601c81527f534146455f4552435f32305f42414c414e43455f5245564552544544000000006020820152919350915082151561192e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b5095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526000906119c78582611a67565b95945050505050565b8051602002815290565b6000806119e78484611ab5565b7c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b9055565b6000806000806040516020818751602089018a5afa92506000831115611a5b57805191505b50909590945092505050565b6000806040516020818551602087016000895af16000811115611aab573d8015611a985760208114611aa157611aa9565b60019350611aa9565b600183511493505b505b5090949350505050565b0160200151905600a165627a7a72305820e58584c63d34ab1101a34d992fcff4bb5dc77bdc07af39b530bf35549631e61e0029ebb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e",
  "deployedBytecode": "0x6080604052600436106101115763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a7811461011657806304bf2a7f146101645780630803fac0146101e657806319f3d10f146101fb5780632914b9bd1461022257806332f0a3b51461027b5780635ca4d4bb146102905780637e7db6e1146102aa57806380afdea8146102d85780638129fc1c146102ed57806387a16f12146103025780638b3dd749146103305780639d4941d814610345578063a1658fad14610373578063a479e508146103e7578063bd8fde1c146103fc578063cff606a014610411578063d4aae0c414610429578063de4796ed1461043e578063f97a05df14610453575b600080fd5b34801561012257600080fd5b506101507fffffffff000000000000000000000000000000000000000000000000000000006004351661049b565b604080519115158252519081900360200190f35b34801561017057600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101bd9436949293602493928401919081908401838280828437509497506104f89650505050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156101f257600080fd5b5061015061064a565b34801561020757600080fd5b50610210610673565b60408051918252519081900360200190f35b34801561022e57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101bd9436949293602493928401919081908401838280828437509497506106979650505050505050565b34801561028757600080fd5b506101bd6107a3565b34801561029c57600080fd5b506102a8600435610841565b005b3480156102b657600080fd5b5061015073ffffffffffffffffffffffffffffffffffffffff60043516610a55565b3480156102e457600080fd5b50610210610a5b565b3480156102f957600080fd5b506102a8610a8b565b34801561030e57600080fd5b5061021073ffffffffffffffffffffffffffffffffffffffff60043516610b3f565b34801561033c57600080fd5b50610210610d03565b34801561035157600080fd5b506102a873ffffffffffffffffffffffffffffffffffffffff60043516610d2e565b34801561037f57600080fd5b50604080516020600460443581810135838102808601850190965280855261015095833573ffffffffffffffffffffffffffffffffffffffff169560248035963696956064959394920192918291850190849080828437509497506110509650505050505050565b3480156103f357600080fd5b506101bd6111e0565b34801561040857600080fd5b506102106112a2565b34801561041d57600080fd5b506102a86004356112c6565b34801561043557600080fd5b506101bd6115a1565b34801561044a57600080fd5b506101506115cc565b34801561045f57600080fd5b5061046b6004356115fd565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835290151560208301528051918290030190f35b60006104a682611642565b806104f257507fffffffff0000000000000000000000000000000000000000000000000000000082167f54053e6c00000000000000000000000000000000000000000000000000000000145b92915050565b60008060006004845110156040805190810160405280601e81526020017f45564d5245475f5343524950545f4c454e4754485f544f4f5f53484f525400008152509015156105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156105a357818101518382015260200161058b565b50505050905090810190601f1680156105d05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506105e88461168c565b63ffffffff1660008181526001602052604090208054919350915074010000000000000000000000000000000000000000900460ff16610629576000610642565b805473ffffffffffffffffffffffffffffffffffffffff165b949350505050565b600080610655610d03565b9050801580159061066d57508061066a611699565b10155b91505090565b7fc4e90f38eea8c4212a009ca7b8947943ba4d4a58d19b683417f65291d1cd9ed281565b60006106a16111e0565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561072557818101518382015260200161070d565b50505050905090810190601f1680156107525780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561077157600080fd5b505af1158015610785573d6000803e3d6000fd5b505050506040513d602081101561079b57600080fd5b505192915050565b60006107ad6115a1565b73ffffffffffffffffffffffffffffffffffffffff166332f0a3b56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561081057600080fd5b505af1158015610824573d6000803e3d6000fd5b505050506040513d602081101561083a57600080fd5b5051905090565b60007ff7a450ef335e1892cb42c8ca72e7242359d7711924b75db5717410da3f614aa361086d8361169d565b610878338383611050565b60408051808201909152600f81527f4150505f415554485f4641494c454400000000000000000000000000000000006020820152901515610915576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b5060008481526001602090815260409182902080548351808501909452601884527f45564d5245475f4558454355544f525f44495341424c4544000000000000000092840192909252945074010000000000000000000000000000000000000000900460ff1615156109e3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b5082547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff8116845560405173ffffffffffffffffffffffffffffffffffffffff9091169085907fc13cd9238f8ab1e5ab1f95cde77e89288fe5c328d04739adffd57b144b408fd190600090a350505050565b50600190565b6000610a867fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b6116de565b905090565b610a93610d03565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a4544000000000000000060208201529015610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b50610b386116e2565b6001600055565b6040805160008082526020820190925281907fc4e90f38eea8c4212a009ca7b8947943ba4d4a58d19b683417f65291d1cd9ed290610b809033908390611050565b60408051808201909152600f81527f4150505f415554485f4641494c454400000000000000000000000000000000006020820152901515610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b50600080546001808201835560408051808201825273ffffffffffffffffffffffffffffffffffffffff808a168083526020808401868152878952959052838720925183549551151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff919093167fffffffffffffffffffffffff00000000000000000000000000000000000000009096169590951794909416179055519194509184917f7697fa3288629310075a63816e294207c84f3cfc18ccf8e18eb917ec0bb566999190a35092915050565b6000610a867febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e6116de565b6000806000610d3c84610a55565b60408051808201909152601281527f5245434f5645525f444953414c4c4f57454400000000000000000000000000006020820152901515610dd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b50610de26107a3565b9250610ded836117c5565b60408051808201909152601a81527f5245434f5645525f5641554c545f4e4f545f434f4e54524143540000000000006020820152901515610e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b5073ffffffffffffffffffffffffffffffffffffffff84161515610ef5576040513031925073ffffffffffffffffffffffffffffffffffffffff84169083156108fc029084906000818181858888f19350505050158015610eef573d6000803e3d6000fd5b50610fe5565b5082610f1d73ffffffffffffffffffffffffffffffffffffffff82163063ffffffff6117ff16565b9150610f4673ffffffffffffffffffffffffffffffffffffffff8216848463ffffffff61193816565b60408051808201909152601d81527f5245434f5645525f544f4b454e5f5452414e534645525f4641494c45440000006020820152901515610fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b505b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f596caf56044b55fb8c4ca640089bbc2b63cae3e978b851f5745cbb7c5b288e02846040518082815260200191505060405180910390a350505050565b60008061105b61064a565b151561106a57600091506111d8565b6110726115a1565b905073ffffffffffffffffffffffffffffffffffffffff8116151561109a57600091506111d8565b8073ffffffffffffffffffffffffffffffffffffffff1663fdef91068630876110c2886119d0565b6040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff808616600483019081529085166024830152604482018490526080606483019081528351608484015283519192909160a490910190602085019080838360005b8381101561115a578181015183820152602001611142565b50505050905090810190601f1680156111875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156111a957600080fd5b505af11580156111bd573d6000803e3d6000fd5b505050506040513d60208110156111d357600080fd5b505191505b509392505050565b6000806111eb6115a1565b604080517fbe00bbd80000000000000000000000000000000000000000000000000000000081527fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb60048201527fddbcfd564f642ab5627cf68b9b7d374fb4f8a36e941a75d89c87998cef03bd616024820152905173ffffffffffffffffffffffffffffffffffffffff929092169163be00bbd8916044808201926020929091908290030181600087803b15801561077157600080fd5b7ff7a450ef335e1892cb42c8ca72e7242359d7711924b75db5717410da3f614aa381565b60007ff7a450ef335e1892cb42c8ca72e7242359d7711924b75db5717410da3f614aa36112f28361169d565b6112fd338383611050565b60408051808201909152600f81527f4150505f415554485f4641494c45440000000000000000000000000000000000602082015290151561139a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b50836000811180156113ad575060005481105b60408051808201909152601a81527f45564d5245475f494e4558495354454e545f4558454355544f52000000000000602082015290151561144a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b5060008581526001602090815260409182902080548351808501909452601784527f45564d5245475f4558454355544f525f454e41424c454400000000000000000092840192909252955074010000000000000000000000000000000000000000900460ff1615611517576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b5083547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001780855560405173ffffffffffffffffffffffffffffffffffffffff9091169086907f7697fa3288629310075a63816e294207c84f3cfc18ccf8e18eb917ec0bb5669990600090a35050505050565b6000610a867f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b6116de565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6115f7610d03565b14905090565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff81169074010000000000000000000000000000000000000000900460ff1682565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60006104f28260006119da565b4390565b60408051600180825281830190925260609160208083019080388339019050509050818160008151811015156116cf57fe5b60209081029091010152919050565b5490565b6116ea610d03565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a4544000000000000000060208201529015611786576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b506117bf611792611699565b7febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e9063ffffffff611a3216565b565b5490565b60008073ffffffffffffffffffffffffffffffffffffffff831615156117ee57600091506117f9565b823b90506000811191505b50919050565b6040805173ffffffffffffffffffffffffffffffffffffffff83166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f70a0823100000000000000000000000000000000000000000000000000000000179052600090818061188c8684611a36565b60408051808201909152601c81527f534146455f4552435f32305f42414c414e43455f5245564552544544000000006020820152919350915082151561192e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105a357818101518382015260200161058b565b5095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526000906119c78582611a67565b95945050505050565b8051602002815290565b6000806119e78484611ab5565b7c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b9055565b6000806000806040516020818751602089018a5afa92506000831115611a5b57805191505b50909590945092505050565b6000806040516020818551602087016000895af16000811115611aab573d8015611a985760208114611aa157611aa9565b60019350611aa9565b600183511493505b505b5090949350505050565b0160200151905600a165627a7a72305820e58584c63d34ab1101a34d992fcff4bb5dc77bdc07af39b530bf35549631e61e0029",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
